Parameter fungsi Go hanya menerima salinan apabila diluluskan mengikut nilai, jadi pengubahsuaian dalam fungsi tidak akan menjejaskan pembolehubah asal. Dengan menggunakan penunjuk, rujukan lulus boleh dicapai supaya pengubahsuaian dalam fungsi mempengaruhi pembolehubah asal.
Skop pembolehubah dan kitaran hayat dalam parameter fungsi Go yang lulus
Dalam bahasa Go, skop pembolehubah dan kitaran hayat parameter fungsi adalah serupa dengan pembolehubah tempatan. Iaitu, jangka hayat pembolehubah parameter adalah terhad kepada tempoh pelaksanaan fungsi.
Lulus mengikut nilai
Secara lalai, parameter fungsi Go diluluskan mengikut nilai. Ini bermakna bahawa fungsi menerima salinan pembolehubah parameter, bukannya rujukan kepada pembolehubah asal. Oleh itu, sebarang pengubahsuaian yang dibuat kepada pembolehubah parameter dalam fungsi tidak akan menjejaskan pembolehubah asal di luar fungsi.
func changeValue(num int) { num = 10 } func main() { num := 5 changeValue(num) fmt.Println(num) // 输出:5 }
Lulus dengan rujukan
Dengan menggunakan penunjuk, rujukan lulus boleh dicapai. Apabila anda menghantar penunjuk ke fungsi, fungsi itu mendapat rujukan kepada pembolehubah asal, bukan salinan. Ini bermakna pengubahsuaian kepada pembolehubah parameter dalam fungsi juga akan mempengaruhi pembolehubah asal di luar fungsi.
func changeValue(num *int) { *num = 10 } func main() { num := 5 changeValue(&num) fmt.Println(num) // 输出:10 }
Kes praktikal
Mari kita pertimbangkan program yang mengira isipadu sfera menggunakan formula pengiraan isipadu sfera V = (4/3) * π * r³
: V = (4/3) * π * r³
计算球体体积的程序:
import ( "fmt" "math" ) func calculateVolume(radius float64) float64 { return (4 / 3.) * math.Pi * math.Pow(radius, 3) } func main() { var radius float64 fmt.Printf("Enter the radius of the sphere: ") fmt.Scan(&radius) volume := calculateVolume(radius) fmt.Printf("The volume of the sphere is: %.2f\n", volume) }
在这个例子中,radius
参数的值通过值传递传递给 calculateVolume
函数。函数内部,radius
参数的副本被使用来计算体积。因此,函数内对 radius
参数的任何修改都不会影响主函数中的原始 radius
rrreee
radius
dihantar ke fungsi calculateVolume
mengikut nilai. Di dalam fungsi, salinan parameter radius
digunakan untuk mengira volum. Oleh itu, sebarang pengubahsuaian pada parameter radius
dalam fungsi tidak akan menjejaskan pembolehubah radius
asal dalam fungsi utama. 🎜Atas ialah kandungan terperinci Skop dan kitaran hayat pembolehubah dalam lulus parameter fungsi Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!