>  기사  >  백엔드 개발  >  Golang의 구조체에 함수를 연결하는 방법

Golang의 구조체에 함수를 연결하는 방법

王林
王林원래의
2024-08-06 02:58:521031검색

How to to attach a function to a struct in Golang

php, C#, Dart 등과 같은 다른 언어를 사용한다면 클래스 메서드를 만드는 데 익숙할 것입니다. 일반적으로 이러한 메서드는 해당 클래스에 대해 하나의 작업을 구현합니다. 이러한 OOP 언어에서는 클래스 범위에서 다음과 같은 메서드를 만듭니다.

class ClassName{
....
 function functionName(){
  // perform action
}
}

Go에서는 먼저 구조체를 만든 다음 수신자를 연결하여 구조체에 대한 특정 작업을 수행할 수 있습니다. 예를 들어, 사용자의 전체 이름을 반환하는 메소드를 원하는 모델 User가 있습니다.

type myUser struct{
 FirstName string
LastName string
PostalCode string
DateOfBirth time.Time
}

위에서 FirstName, LastName ....과 같은 다양한 속성을 가진 User 유형을 생성했습니다. 이 경우에는 전체 이름 형식을 반환하는 'myUser' 유형에 대해 특별한 작업을 수행하는 메서드를 원합니다. 명시된 속성 FirstName,LastName.

문자열을 반환하는 수신자 함수 전체 이름을 만들 수 있습니다.

func (user *myUser) fullname() (string, string){
   return user.FirstName ,user.LastName
}

이것을 어떻게 사용할 수 있나요? 이것이 어떻게 작동하는지 알아보기 위해 main 함수에서 직접 테스트할 수 있습니다.

func main() {

    user := myUser{
        FirstName: "Felix",
        LastName:  "chi",
    }
    fmt.Println(user.fullname())

}

따라서 myUser 구조체에 대한 수신자 메서드를 성공적으로 만들었습니다. 전체 송가는 다음과 같습니다:

package main

import (
    "fmt"
    "time"
)

type myUser struct {
    FirstName   string
    LastName    string
    PostalCode  string
    DateOfBirth time.Time
}

func (user *myUser) fullname() (string, string) {
    return user.FirstName, user.LastName
}

func main() {

    user := myUser{
        FirstName: "Felix",
        LastName:  "chi",
    }
    fmt.Println(user.fullname())

}

그럼 다음은요? https://go.dev/play/에 코드를 붙여넣어 실제로 어떻게 작동하는지 확인해 보세요. 다음 게시물에서 확인하세요...!!!!

위 내용은 Golang의 구조체에 함수를 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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