package main
import "fmt"
type Person struct {
AgeYears int
}
func change_1(person Person) {
person.AgeYears = 10;
}
func change_2(person *Person) {
person.AgeYears = 20;
}
func change_map(temp map[string]int){
temp["age"] = 200
}
func changeArr_1( temp []int){
temp[0] = 1000
}
func main() {
//修改strut中值
var t1 = Person{AgeYears:-10};
change_1(t1)
fmt.Printf("t1 after change:%#v\n",t1) //-main.Person{AgeYears:-10}
//修改strut中值
var t2 = new(Person);
t2.AgeYears = -20;
change_2(t2)
fmt.Printf("t2 after change:%#v\n",t2) //&main.Person{AgeYears:20}
//修改strut中值
var t3 Person;
t3.AgeYears = -30;
change_2(&t3)
fmt.Printf("t3 after change:%#v\n",t3) //main.Person{AgeYears:20}
//修改map中值
var mpTest = make(map[string]int)
mpTest["age"] = 10
change_map(mpTest)
age,ok := mpTest["age"]
if ok {
fmt.Printf("mptest after Change,age:%#v\n",age) //200
}
//修改数组值
arr :=[...] int {1,2,3,4,5}
changeArr_1(arr[:])
fmt.Printf("arr after Change:%#v\n",arr) //[5]int{1000, 2, 3, 4, 5}
}
//运行结果
t1 after change:main.Person{AgeYears:-10}
t2 after change:&main.Person{AgeYears:20}
t3 after change:main.Person{AgeYears:20}
mptest after Change,age:200
arr after Change:[5]int{1000, 2, 3, 4, 5}