Go中的結構實現它的的寫法註意事項
阿新 • • 發佈:2017-10-28
pre 值傳遞 為什麽 div 錯誤 寫法 nta () clas
下面一個例子:
type Student struct { name string age int } func (s Student) printAge() { fmt.Println(s.age) } func (s Student) setAge(age int) { s.age = age } func main() { var P Student = Student{"huang", 15} P.setAge(10) P.printAge()
這段代碼輸出多少了,答案是15,那為什麽
P.setAge(10)
調用了這個setAge方法,而age還沒改變呢?
上述的代碼Go沒有報錯,這就說明代碼沒有錯誤,只能說有bug,GO在上面表明只是值傳遞,假如要實現一個類似Class類型的方法,只有指針去改變了。
type Student struct { name string age int } func (s *Student) printAge() { fmt.Println(s.age) } func (s *Student) setAge(age int) { s.age = age } func main() { var P Student = Student{"huang", 15} P.setAge(10) P.printAge() }
這樣就行。
Go中的結構實現它的的寫法註意事項