Go 구조체(struct)
Go 구조체(struct) 설명
구조체(struct)
Go 언어에서는 클래스(class) 대신 구조체(struct)를 사용한다.
구조체에는 멤버 변수만을 정의하고, 클래스 메소드에 상당하는 함수는 함수명 앞에 (this에 해당하는 변수 *구조체명) 을 붙여 정의한다.
package main
import "fmt"
type Person struct {
name string
age int
}
func (p *Person) SetPerson(name string, age int) {
p.name = name
p.age = age
}
func (p *Person) GetPerson() (string, int) {
return p.name, p.age
}
func main() {
var p1 Person
p1.SetPerson("devkuma", 23)
name, age := p1.GetPerson()
fmt.Printf("%s(%d)\n", name, age)
}
실행 결과:
devkuma(23)
구조체의 멤버 중, 대문자로 시작되는 것은 패키지 외부에서도 액세스가 가능하고, 소문자로 시작되는 것은 패키지 외부에서 액세스 불가능하게 된다.
type Person struct {
Name string // 외부에서 액세스 가능
Age int // 외부에서 액세스 가능
status int // 외부에서 액세스 불가
}
구조체를 사용할 때는 아래와 같이 파라미터를 초기화할 수 있다.
a1 := Person{ "devkuma", 26 } // 순서대로 초기화
a2 := Person{ name: "devkuma", age: 32 } // 이름으로 초기화