1. 章節(jié)簡介
- 指針可以讓函數(shù)修改外部變量。
- 區(qū)分 值傳遞 與 指針傳遞。
2. 知識點(diǎn)講解
- 值傳遞:
func f(x int) {
x = 100
}
外部變量不會被修改。
- 指針傳遞:
func f(p *int) {
*p = 100
}
外部變量的值會被修改。
3. 代碼示例
package main
import "fmt"
func main() {
a := 10
fmt.Println("原始 a:", a)
// 值傳遞
changeValue(a)
fmt.Println("值傳遞后 a:", a) // a 未變化
// 指針傳遞
changePointer(&a)
fmt.Println("指針傳遞后 a:", a) // a 變?yōu)?100
}
func changeValue(x int) {
x = 100
}
func changePointer(p *int) {
*p = 100
}
4. 練習(xí)任務(wù)
- 聲明一個整數(shù)變量
score,寫函數(shù)修改它的值。 - 先用值傳遞,再用指針傳遞,觀察結(jié)果差異。
5. 小結(jié)
- 指針允許直接操作內(nèi)存,修改外部變量。
-
&取地址,*解引用。 - 理解值傳遞 vs 指針傳遞是 Go 編程基礎(chǔ)。