상세 컨텐츠

본문 제목

Go 언어에서 구조체

Go lang

by techbard 2022. 3. 14. 09:23

본문

반응형
  1. 서로 다른 타입의 속성을 하나로 묶어 관리
  2. 멤버변수명: 타입 속성의 형식
  3. 구조체를 하나로 이용할 수도, 개별로 이용할 수도 있다.
  4. 구조체 합성도 가능하다.
package main

import (
	"fmt"
)

func main() {
	p := person{
		firstName: "gildong",
		lastName:  "Go",
		age:       43,
	}

	fmt.Println("구조체 전체를 출력:", p)
	fmt.Println("구조체 멤버 하나만 출력:", p.firstName)
	p.age = 40
	fmt.Println("구조체 멤버 하나만 수정:", p)

}

type person struct {
	firstName string
	lastName  string
	age       int
}

// 결과
//
// 구조체 전체를 출력: {gildong Go 43}
// 구조체 멤버 하나만 출력: gildong
// 구조체 멤버 하나만 수정: {gildong Go 40}
  1. 구조체 합성
  2. 함수 이름 앞에 리시버로 구조체를 정의할 수 있다.
  3. 그러면 구조체 변수로 할당한 함수 호출 가능
package main

import (
	"fmt"
)

func main() {
	p := person{
		firstName: "gildong",
		lastName:  "Go",
		age:       43,
	}
	p.whoami()

	s := student{
		person:    person{"Dooly", "Na", 32},
		studentID: 99,
	}
	s.whoami()
}

type person struct {
	firstName string
	lastName  string
	age       int
}

func (p person) whoami() {
	fmt.Println(p, "I am a person.")
}

// 구조체 합성
type student struct {
	person
	studentID int
}

func (s student) whoami() {
	fmt.Println(s, "I am a student.")
}

// 결과
//
// {gildong Go 43} I am a person.
// {{Dooly Na 32} 99} I am a student.
반응형

관련글 더보기

댓글 영역