English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Golang에서 구조체 또는 struct는 사용자 정의 유형으로, 한 단위에서 다양한 유형의 요소를 생성할 수 있습니다. 모든 속성이나 필드를 가진 실제 엔티티는 구조체로 표현될 수 있습니다. 우리는 Go 언어에서 함수도 사용자 정의 유형임을 알고 있기 때문에 Go 구조체에서 함수 필드를 생성할 수 있습니다. 또한, 예제와 같이 Go 구조체에서 익명 함수를 사용하여 함수 필드를 생성할 수 있습니다.2그림에서 보이는 것처럼.
문법:
type function_name func() type strcut_name struct{ var_name function_name }
이 개념에 대해 예제를 통해 논의해 보겠습니다:
//Go 구조체 필드로 사용됨 package main import "fmt" // Finalsalary 함수 유형 type Finalsalary func(int, int) int //구조체 생성 type Author struct { name string language string Marticles int Pay int //필드로 함수 사용 salary Finalsalary } func main() { // 구조체 필드 초기화 result := Author{ name: "Sonia", language: "Java", Marticles: 120, Pay: 500, salary: func(Ma int, pay int) int { return Ma * pay , } fmt.Println("저자 이름: ", result.name) fmt.Println("언어: ", result.language) fmt.Println("5월에 발행한 문서 총 수: ", result.Marticles) fmt.Println("각 문서 보상: ", result.Pay) fmt.Println("총 급여: ", result.salary(result.Marticles, result.Pay)) }
출력:
저자 이름: Sonia 언어: Java 5월에 발행한 문서 총 수: 120 각 문서 보상: 500 총 급여: 60000
Go 구조체 필드로 익명 함수 사용2:
//Go 구조체 필드로 익명 함수 사용 package main import "fmt" //구조체 생성 type Author struct { name string language string Tarticles int Particles int Pending func(int, int) int } func main() { //구조체 필드 초기화 result := Author{ name: "Sonia", language: "Java", Tarticles: 340, Particles: 259, Pending: func(Ta int, Pa int) int { return Ta - Pa , } fmt.Println("저자 이름: ", result.name) fmt.Println("언어: ", result.language) fmt.Println("문서 총 수: ", result.Tarticles) fmt.Println("발행 문서 총 수: ", result.Particles) fmt.Println("대기 중 문서: ", result.Pending(result.Tarticles, result.Particles)) }
출력:
저자 이름: Sonia 언어: Java 문서 총 수: 340 게시된 문서 총 수: 259 처리되지 않은 문서: 81