type citizen struct {
Name string
Country string
}
func newCitizen(param ...string) citizen {
switch len(param) {
case 0:
return citizen{"unknown", "unknown"}
case 1:
return citizen{param[0], "unknown"}
default:
return citizen{param[0], param[1]}
}
}
var man1 = newCitizen()
//man1.Name is "unknown"
fmt.Println("man1.Name =", man1.Name)
//man1.Country is "unknown"
fmt.Println("man1.Country =", man1.Country)
var man2 = newCitizen("Vladimir")
//man2.Name is "Vladimir"
fmt.Println("man2.Name =", man2.Name)
//man2.Country is "unknown"
fmt.Println("man2.Country =", man2.Country)
var man3 = newCitizen("Vladimir", "Brazil")
//man3.Name is "Vladimir"
fmt.Println("man3.Name =", man3.Name)
//man3.Country is "Brazil"
fmt.Println("man3.Country =", man3.Country)