메서드 = 특정 타입에 속해 있어 해당 타입의 인스턴스에서 실행 가능한 함수
// r Rabbit: 리시버 (해당 메서드를 선언할 타입)
// info(): 함수명 및 매개변수 정의
// int: 리턴타입 명시
func (r Rabbit) info() int {
return r.width * r.height
}
package main
import "fmt"
type Person struct {
Name string;
Age int;
}
func (p Person) introduce() {
fmt.Printf("제 이름은 %s이고 나이는 %d살 입니다!", p.Name, p.Age)
}
func main() {
person := Person{
"제임스",
31,
}
person.introduce()
}
package main
import (
"fmt"
)
type Person struct {
Name string
}
// 값 타입 메서드. 실제 결과에 영향을 미치지 않음.
func (p Person) ChangeNameValue(name string){
p.Name = name
}
// 포인터 타입 메서드
func (p *Person) ChangeNamePointer(name string){
p.Name = name
}
func main() {
var p = Person{"철수"}
p.ChangeNameValue("영희")
fmt.Println(p.Name)
// > "철수"
p.ChangeNamePointer("영희")
fmt.Println(p.Name)
}