"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Go에서 'func' 뒤에 괄호가 있는 이유는 무엇입니까?

Go에서 'func' 뒤에 괄호가 있는 이유는 무엇입니까?

2024년 12월 22일에 게시됨
검색:421

Why are there Brackets after `func` in Go?

Go에서 func 뒤의 괄호의 중요성 이해

Go 프로그래밍 영역의 초보자로서 func 키워드 바로 뒤에 괄호가 사용되는 경우가 발생할 수 있습니다. . 특히 Go의 고유한 구문에 익숙하지 않은 경우 이는 혼란스러울 수 있습니다. 이 수수께끼처럼 보이는 기능을 살펴보겠습니다.

(v 버전) 뒤에 무엇이 있습니까?

Go에서 func 뒤에 오는 대괄호는 함수 서명의 일부가 아니라 메서드를 나타냅니다. 메소드는 특정 유형과 연관된 함수입니다. 제공한 코드 조각은 Version 유형에 대한 MarshalJSON이라는 메서드의 정의를 보여줍니다.

분석:

  • (v Version) : 이는 수신자와 수신자의 유형을 지정합니다. 이 경우 v는 Version 유형의 수신자입니다. 즉, 메서드는 Version 유형의 값에서만 호출될 수 있습니다.
  • MarshalJSON(): 이는 메서드의 이름입니다.
  • ( []byte, error): 이는 메소드의 반환 유형입니다. 이 경우 바이트 배열과 오류 값을 반환합니다.

수신기 이해

수신자는 각각 Python 및 Java의 self 또는 this 키워드와 유사합니다. 메소드가 호출되는 유형의 인스턴스를 나타냅니다. 예제에서 v는 MarshalJSON 메서드가 호출되는 Version 유형의 인스턴스를 나타냅니다.

실용 예제

이 개념을 더 자세히 설명하려면 다음 코드를 고려하세요.

type Person struct {
    name string
}

func (p Person) SayHello() {
    fmt.Printf("Hello! My name is %s.\n", p.name)
}

이 예에서는 SayHello 메서드가 Person 구조체 유형에 연결됩니다. 이는 Person 유형의 모든 인스턴스가 SayHello 메소드를 호출할 수 있음을 의미합니다.

결론

Go에서 func 뒤의 괄호는 메소드 정의를 나타내며, 후속 괄호는 수신자와 수신자의 유형을 지정합니다. . 메서드를 사용하면 특정 유형에 기능을 추가하여 코드 모듈성과 재사용성을 향상할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3