>백엔드 개발 >Golang >골랭 메소드 선언

골랭 메소드 선언

PHPz
PHPz원래의
2023-05-16 16:54:08499검색

Golang은 Google에서 개발한 매우 인기 있는 프로그래밍 언어입니다. 고유한 구문과 강력한 성능으로 인해 널리 사용됩니다. Golang에서 메소드 선언은 객체지향 프로그래밍에서 중요한 역할을 하기 때문에 매우 중요한 기본 지식입니다.

Golang에서는 메소드를 사용하여 유형의 기능을 확장할 수 있습니다. 메소드는 구조나 모든 유형(기본 유형 포함)의 소스 코드 파일에서 정의될 수 있습니다. 이 기사에서는 메소드 구문, 매개변수 및 반환 값 유형 등을 포함하여 Golang 메소드 선언의 기본 사항을 살펴보겠습니다.

메서드 구문

Golang에서는 다음 구문을 사용하여 메소드를 선언할 수 있습니다.

func (t Type) methodName(parameterList) (returnTypeList) {

// 方法体

}

그 중 func는 메소드를 선언하는 데 사용됩니다. 키워드, Type은 수신자 매개변수의 유형, methodName은 메소드의 이름, paramatorList는 메소드의 매개변수 목록, returnTypeList는 메소드의 반환 값 목록입니다.

위 구문에서 유형은 구조 유형 또는 기타 유형일 수 있습니다. 수신자 매개변수는 메소드를 정의하는 유형입니다. 이는 메소드가 호출되는 인스턴스를 사용하여 메소드에 액세스할 수 있음을 의미합니다. 구조체 유형을 정의하면 이를 사용하여 다음과 같은 메서드를 호출할 수 있습니다:

type Rectangle struct {

width, height float64

}

func (r Rectangle) Area() float64 {

return r.width * r.height

}

r : = Rectangle{ 3, 4}
fmt.Println(r.area())

위 코드에서는 Rectangle 유형과area() 메소드를 정의합니다.area() 메소드의 수신 매개변수는 Rectangle 유형입니다. Rectangle 인스턴스 r을 생성하고 이를 사용하여 Area() 메서드를 호출하여 직사각형의 면적을 계산합니다.

그런 다음 매개변수 목록과 반환 값 목록을 살펴보세요. 매개변수 목록에는 0개 이상의 매개변수가 포함되어 있으며 이러한 매개변수의 유형은 유효한 Golang 유형이 될 수 있습니다. 반환 값 목록은 0개 이상의 반환 값으로 구성된 메서드의 반환 값을 나타냅니다. 이러한 반환 값의 유형은 유효한 Golang 유형일 수도 있습니다.

다음은 두 개의 매개변수와 반환 값을 사용하여 메서드를 정의하는 방법을 보여주는 예입니다.

type Person struct {

name string
age  int

}

func (p Person) fullName(firstName string, lastName string) string {

p.name = firstName + " " + lastName
return p.name

}

person := Person{"Jerry", 28}
fmt.Println(person.fullName("John", "Doe"))

이 예에서는 Person 유형과 fullName() 메서드를 정의합니다. . fullName() 메소드에는 firstName과 lastName이라는 두 개의 매개변수가 있습니다. 또한 문자열 유형의 반환 값도 있습니다. fullName() 메소드에서는 firstName과 lastName을 완전한 이름으로 결합한 다음 이를 Person 구조의 name 필드에 할당하고 이 이름을 반환합니다.

매개변수 및 반환 값 유형

Golang 메서드의 매개변수 목록과 반환 값 목록은 매우 유연하며 유효한 Golang 데이터 유형이 될 수 있습니다. 메서드 정의에서 매개변수와 반환 값 유형은 동일하거나 다를 수 있습니다. 다음 예를 살펴보겠습니다.

type Student struct {

name      string
age       int
grade     int
addresses []string

}

func (s *Student)changeName(name string) {

s.name = name

}

func (s *Student) getAddresses() [] string {

return s.addresses

}

student := Student{"Joe", 12, 6, []string{"Beijing", "Shanghai"}}
fmt.Println(student.name)
student.changeName("Tom " )
fmt.Println(student.name)

addresses := Student.getAddresses()
fmt.Println(addresses)

위 코드에서는 Student 구조와 두 가지 메소드(changeName() 및 getAddresses()를 정의합니다. ). ChangeName() 메서드의 수신자 매개변수는 반환 값이 없는 Student 구조에 대한 포인터인 반면, getAddresses() 메서드의 수신자 매개변수는 Student 구조에 대한 포인터이고 반환 값은 문자열 배열입니다.

changeName() 메소드에서는 Student 인스턴스의 name 필드를 새로운 값으로 설정하고, getAddresses() 메소드에서는 Student 인스턴스의 주소 필드를 직접 반환합니다.

요약

이 글에서 언급했듯이 메소드 선언은 Golang 프로그래밍에서 매우 중요한 부분입니다. 그중 메소드 구문, 매개변수 및 반환 값 유형은 우리가 주의해야 할 세 가지 측면입니다. Golang 메소드의 정의와 사용법을 이해함으로써 Golang의 우수한 기능을 더 잘 활용하고 보다 효율적이고 우수한 애플리케이션을 개발할 수 있습니다.

위 내용은 골랭 메소드 선언의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.