package main
import (
"fmt"
)
type Human struct {
name string
job Job
}
type Job struct {
name string
position string
}
func NewHuman(name string, jobname string, position string) *Human {
return *Human{
name: name,
job: Job{
name: jobname,
position: position,
},
}
}
func (h Human) JobPosition() string {
return h.job.position
}
func (h *Human) SetJobPosition(position string) {
h.job.position = position
}
func main() {
fmt.Println("Hello World!")
h1 := NewHuman("Shinzou Abe", "politician", "prime minister")
fmt.Println(h1.JobPosition())
h2 := NewHuman("Yukio Hatoyama", "jobless", "master of baka")
fmt.Println(h2.JobPosition())
}
cGFja2FnZSBtYWluCgppbXBvcnQgKAoJImZtdCIKKQoKdHlwZSBIdW1hbiBzdHJ1Y3QgewoJbmFtZSBzdHJpbmcKCWpvYiAgSm9iCn0KCnR5cGUgSm9iIHN0cnVjdCB7CgluYW1lICAgICBzdHJpbmcKCXBvc2l0aW9uIHN0cmluZwp9CgpmdW5jIE5ld0h1bWFuKG5hbWUgc3RyaW5nLCBqb2JuYW1lIHN0cmluZywgcG9zaXRpb24gc3RyaW5nKSAqSHVtYW4gewoJcmV0dXJuICpIdW1hbnsKCQluYW1lOiBuYW1lLAoJCWpvYjogSm9iewoJCQluYW1lOiAgICAgam9ibmFtZSwKCQkJcG9zaXRpb246IHBvc2l0aW9uLAoJCX0sCgl9Cn0KCmZ1bmMgKGggSHVtYW4pIEpvYlBvc2l0aW9uKCkgc3RyaW5nIHsKCXJldHVybiBoLmpvYi5wb3NpdGlvbgp9CgpmdW5jIChoICpIdW1hbikgU2V0Sm9iUG9zaXRpb24ocG9zaXRpb24gc3RyaW5nKSB7CgloLmpvYi5wb3NpdGlvbiA9IHBvc2l0aW9uCn0KCmZ1bmMgbWFpbigpIHsKCWZtdC5QcmludGxuKCJIZWxsbyBXb3JsZCEiKQoJaDEgOj0gTmV3SHVtYW4oIlNoaW56b3UgQWJlIiwgInBvbGl0aWNpYW4iLCAicHJpbWUgbWluaXN0ZXIiKQoJZm10LlByaW50bG4oaDEuSm9iUG9zaXRpb24oKSkKCWgyIDo9IE5ld0h1bWFuKCJZdWtpbyBIYXRveWFtYSIsICJqb2JsZXNzIiwgIm1hc3RlciBvZiBiYWthIikKCWZtdC5QcmludGxuKGgyLkpvYlBvc2l0aW9uKCkpCn0K