Golang의 익명 구조체와 필드

Golang 에서는 구조체(struct)를 사용하면 여러 유형의 요소를 단일 단위로 그룹화할 수 있어 실제 엔터티를 모델링하는 데 유용합니다. Golang의 익명 구조체는 한 번만 사용되는 이름이 없는 임시 구조체인 반면, 익명 필드는 이름이 없는 필드를 내장하는 것을 허용합니다.

Golang의 익명 구조체와 필드

예를 들어:

package main
import "fmt"

// struct học sinh với cấu trúc và trường ẩn danh
type Student struct {
    struct {    // Cấu trúc bên trong ẩn danh cho thông tin cá nhân
        name string
        enrollment int
    }
    GPA float64  // Trường chuẩn
}

func main() {
    student := Student{
        struct {
            name string
            enrollment int
        }{
            name: "A",
            enrollment: 12345,
        },
        GPA: 3.8,
    }
    fmt.Println("Name:", student.name)
    fmt.Println("Enrollment:", student.enrollment)
    fmt.Println("GPA:", student.GPA)
}

통사론:

variable := struct {
    field1 dataType1
    field2 dataType2                                                          # Cấu trúc ẩn danh
    // Trường bổ sung khi cần
}{value1, value2}


type StructName struct {
    dataType1
    dataType2                                                                    # Trường ẩn danh                                        
    // Trường ẩn danh bổ sung
}

Go의 익명 구조

Go의 익명 구조체는 이름 없이 정의되며 일시적이고 일회용인 구조체를 만드는 데 유용합니다. 구문과 코드 예는 다음과 같습니다.

통사론:

variable := struct {
    field1 dataType1
    field2 dataType2
    // Các trường bổ sung khi cần
}{value1, value2}

예를 들어:

package main
import "fmt"
// Cấu trúc sinh viên với cấu trúc bên trong ẩn danh cho thông tin cá nhân
type Student struct {
    personalDetails struct { // Cấu trúc ẩn danh bên trong cho thông tin cá nhân
        name       string
        enrollment int
    }
    GPA float64 // Trường chuẩn
}
func main() {
    // Khởi tạo cấu trúc bên trong cho student
    student := Student{
        personalDetails: struct {
            name       string
            enrollment int
        }{
            name:       "A",
            enrollment: 12345,
        },
        GPA: 3.8,
    }
    // Hiện giá trị
    fmt.Println("Name:", student.personalDetails.name)
    fmt.Println("Enrollment:", student.personalDetails.enrollment)
    fmt.Println("GPA:", student.GPA)
}

결과:

Name: A
Enrollment: 12345
GPA: 3.8

이 코드는 익명의 personalDetails 구조를 내부에 포함하고 이름과 등록 정보를 저장하는 Student 구조를 정의합니다. 그런 다음 이러한 필드에 대한 값으로 학생을 초기화 하고 이를 출력합니다.

익명 필드

Go의 익명 필드를 사용하면 명확한 이름 없이 필드를 정의할 수 있으며, 필드의 유형만 지정됩니다. 이 기능은 필드가 자연스럽게 유형 이름 뒤에 오는 경우에 유용합니다.

통사론

type StructName struct {
    dataType1
    dataType2
    // Additional anonymous fields
}

예를 들어:

package main
import "fmt"

// Cấu trúc học sinh bằng các trường ẩn danh
type Student struct {
    int     // Số đăng ký (trường ẩn danh)
    string  // Tên trường ẩn danh
    float64 // GPA (trường ẩn danh)
}

func main() {
    // Khởi tạo struct học sinh với các trường ẩn danh
    student := Student{12345, "A", 3.8}

    // Hiện giá trị
    fmt.Println("Enrollment:", student.int)
    fmt.Println("Name:", student.string)
    fmt.Println("GPA:", student.float64)
}

결과:

Enrollment: 12345
Name: A
GPA: 3.8

여기서 데이터 유형( int, string, float64 )은 필드 이름으로 작용하므로 값에 액세스하는 것은 유형에 따라 달라집니다.

Golang의 익명 필드에 대해 기억해야 할 중요한 사항

1. 고유 요구 사항: 하나의 구조에서 동일한 유형의 두 필드를 사용할 수 없습니다. 예를 들어:

type InvalidStudent struct {
    int
    int // Error: duplicate type
}

2. 명명된 필드와 익명 필드 결합: 구조에서 익명 필드와 명명된 필드를 결합할 수 있습니다.

type Student struct {
    id int // Named field
    int    // Anonymous field
}

댓글 남기기

평택에서 폐건전지 버리는 방법: 수거함 찾기부터 안전 배출까지

평택에서 폐건전지 버리는 방법: 수거함 찾기부터 안전 배출까지

평택에서 폐건전지를 버리는 순서와 가까운 전용 수거함 찾는 법을 안내합니다. 건전지 분리·보관, 손상된 리튬전지 주의사항, 교환 여부 확인법도 살펴보세요.

서울에서 부탄가스통 버리는 방법: 잔량 확인부터 캔류 배출까지

서울에서 부탄가스통 버리는 방법: 잔량 확인부터 캔류 배출까지

서울에서 부탄가스통을 버리는 방법을 정리했습니다. 완전 소진 여부, 구멍을 뚫기 전 안전 확인, 캔류 배출과 자치구별 문의 방법을 안내합니다.

서울에서 냉장고 버리는 방법: 무료 방문수거·새 제품 회수·구청 신고 비교

서울에서 냉장고 버리는 방법: 무료 방문수거·새 제품 회수·구청 신고 비교

서울에서 냉장고를 버리는 방법을 비교합니다. 무상방문수거 예약, 새 냉장고 구매 시 회수, 구청 대형폐기물 신고의 조건과 준비 사항을 확인하세요.

평택에서 형광등 버리는 방법: 전용 수거함 확인과 안전한 배출 요령

평택에서 형광등 버리는 방법: 전용 수거함 확인과 안전한 배출 요령

평택에서 폐형광등을 버리는 방법을 정리했습니다. 아파트 수거함과 행정복지센터 확인법, 안전한 포장, 깨진 형광등과 LED 구분까지 안내합니다.

안양에서 폐건전지 버리는 방법: 수거함 위치 확인부터 안전한 배출까지

안양에서 폐건전지 버리는 방법: 수거함 위치 확인부터 안전한 배출까지

안양에서 폐건전지를 올바르게 버리는 방법을 정리했습니다. 단독주택·공동주택 배출처, 전용수거함 이용법, 내장형 배터리 제품 구분과 화재 예방 주의사항을 확인하세요.

부산에서 자전거 버리는 방법: 재사용, 대형폐기물 신고와 비용 비교

부산에서 자전거 버리는 방법: 재사용, 대형폐기물 신고와 비용 비교

부산에서 자전거 버리는 방법을 비교합니다. 판매·나눔과 대형폐기물 신고, 구·군별 수수료, 온라인·전화 접수, 배출 전 체크리스트를 확인하세요.

고양에서 폐건전지 버리는 방법: 수거함 위치와 안전한 분리배출

고양에서 폐건전지 버리는 방법: 수거함 위치와 안전한 분리배출

고양에서 폐건전지를 버릴 때 수거함을 찾는 순서와 일반 건전지, 보조배터리, 부푼 리튬 배터리의 안전한 배출 방법을 정리했습니다.

서울 종량제봉투 가격과 판매처 확인 방법: 2026년 기준 실용 가이드

서울 종량제봉투 가격과 판매처 확인 방법: 2026년 기준 실용 가이드

서울 종량제봉투 가격과 지정 판매처를 정확히 확인하는 방법을 정리했습니다. 10L·20L·50L 가격, 자치구별 확인법, 판매점 찾기와 규격 선택 기준을 2026년 공식 자료로 안내합니다.

화성에서 컴퓨터 버리는 방법: 무료 폐가전 수거부터 대형폐기물 신고까지

화성에서 컴퓨터 버리는 방법: 무료 폐가전 수거부터 대형폐기물 신고까지

화성에서 데스크톱, 모니터, 노트북을 버리는 방법을 정리했습니다. 개인정보 삭제, 폐가전 무상방문수거 조건, 대형폐기물 신고, 배출 전 체크리스트까지 확인하세요.

안산에서 스프레이캔 버리는 방법: 가스 제거부터 캔류 배출까지

안산에서 스프레이캔 버리는 방법: 가스 제거부터 캔류 배출까지

안산시 기준으로 스프레이캔·에어졸캔을 안전하게 비우고 캔류로 분리배출하는 방법을 정리했습니다. 일반주택과 공동주택의 배출 차이, 가스 제거 요령, 확인할 점까지 안내합니다.