Go skop pembolehubah bahasa


Skop pembolehubah bahasa Go

Skop ialah skop pemalar, jenis, pembolehubah, fungsi atau pakej yang diwakili oleh pengecam yang diisytiharkan dalam kod sumber.

Pembolehubah boleh diisytiharkan dalam tiga tempat dalam bahasa Go:

  • Pembolehubah yang ditakrifkan dalam fungsi dipanggil pembolehubah tempatan

  • Pembolehubah yang ditakrifkan di luar fungsi dipanggil pembolehubah global

  • Pembolehubah dalam definisi fungsi dipanggil parameter formal

Mari kita memahami pembolehubah tempatan secara terperinci , pembolehubah global dan parameter formal.


Pembolehubah setempat

Pembolehubah yang diisytiharkan dalam badan fungsi dipanggil pembolehubah tempatan Skopnya hanya dalam badan fungsi, dan parameter dan pembolehubah nilai pulangan juga merupakan pembolehubah tempatan.

Dalam contoh berikut, fungsi main() menggunakan pembolehubah setempat a, b, c:

package main

import "fmt"

func main() {
   /* 声明局部变量 */
   var a, b, c int 

   /* 初始化参数 */
   a = 10
   b = 20
   c = a + b

   fmt.Printf ("结果: a = %d, b = %d and c = %d\n", a, b, c)
}

Hasil keluaran pelaksanaan contoh di atas ialah:

结果: a = 10, b = 20 and c = 30

Pembolehubah global

Pembolehubah yang diisytiharkan di luar fungsi dipanggil pembolehubah global boleh digunakan dalam keseluruhan pakej atau bahkan dalam pakej luaran (selepas dieksport).

Pembolehubah global boleh digunakan dalam mana-mana fungsi Contoh berikut menunjukkan cara menggunakan pembolehubah global:

package main

import "fmt"

/* 声明全局变量 */
var g int

func main() {

   /* 声明局部变量 */
   var a, b int

   /* 初始化参数 */
   a = 10
   b = 20
   g = a + b

   fmt.Printf("结果: a = %d, b = %d and g = %d\n", a, b, g)
}

Hasil keluaran pelaksanaan contoh di atas ialah:

结果: a = 10, b = 20 and g = 30

Program bahasa Global dalam Go Pembolehubah dan pembolehubah tempatan boleh mempunyai nama yang sama, tetapi pembolehubah tempatan dalam fungsi akan diberi keutamaan. Contohnya adalah seperti berikut:

package main

import "fmt"

/* 声明全局变量 */
var g int = 20

func main() {
   /* 声明局部变量 */
   var g int = 10

   fmt.Printf ("结果: g = %d\n",  g)
}

Output pelaksanaan contoh di atas ialah:

结果: g = 10

Parameter formal

Parameter formal akan digunakan sebagai pembolehubah tempatan bagi fungsi. Contohnya adalah seperti berikut:

package main

import "fmt"

/* 声明全局变量 */
var a int = 20;

func main() {
   /* main 函数中声明局部变量 */
   var a int = 10
   var b int = 20
   var c int = 0

   fmt.Printf("main()函数中 a = %d\n",  a);
   c = sum( a, b);
   fmt.Printf("main()函数中 c = %d\n",  c);
}

/* 函数定义-两数相加 */
func sum(a, b int) int {
   fmt.Printf("sum() 函数中 a = %d\n",  a);
   fmt.Printf("sum() 函数中 b = %d\n",  b);

   return a + b;
}

Output pelaksanaan contoh di atas ialah:

main()函数中 a = 10
sum() 函数中 a = 10
sum() 函数中 b = 20
main()函数中 c = 30

Memulakan pembolehubah tempatan dan global

Nilai lalai berbeza jenis pembolehubah tempatan dan global ialah:

数据类型初始化默认值
int0
float320
pointernil