ภาษาไปกำหนดขอบเขตตัวแปร
อ้างขอบเขตระบุคงแสดงโดยแบ่งตามชนิดตัวแปรฟังก์ชั่นแพคเกจหรือขอบเขตในรหัสที่มา
ตัวแปรภาษา Go สามารถประกาศในสามสถานที่:
- ตัวแปรที่กำหนดไว้ในฟังก์ชั่นที่เรียกว่าตัวแปรท้องถิ่น
- ตัวแปรนอกนิยามฟังก์ชันที่เรียกว่าตัวแปรทั่วโลก
- ตัวแปรนิยามฟังก์ชันที่เรียกว่าพารามิเตอร์อย่างเป็นทางการ
ขอให้เราเข้าใจตัวแปรท้องถิ่นเฉพาะตัวแปรและพารามิเตอร์อย่างเป็นทางการ
ตัวแปรท้องถิ่น
เรียกว่าตัวแปรท้องถิ่นในการประกาศตัวแปรของร่างกายฟังก์ชั่นที่พวกเขาเพียง แต่ฟังก์ชั่นอยู่ในขอบเขตร่างกายพารามิเตอร์และค่านิยมของการกลับมาของตัวแปรเป็นตัวแปรท้องถิ่น
ต่อไปนี้เป็นตัวอย่างหลัก () ฟังก์ชันใช้ตัวแปรท้องถิ่น 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) }
ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:
结果: a = 10, b = 20 and c = 30
ตัวแปรทั่วโลก
เรียกว่าตัวแปรระดับโลกในการประกาศตัวแปรของฟังก์ชั่นในหลอดทดลองที่ตัวแปรทั่วโลกสามารถ (หลังจากถูกส่งออก) โดยใช้แพคเกจทั้งหมดแม้แพคเกจภายนอก
ตัวแปรทั่วโลกสามารถนำมาใช้ในการทำงานใด ๆ ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการใช้ตัวแปรทั่วโลก:
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) }
ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:
结果: a = 10, b = 20 and g = 30
ไปโปรแกรมภาษาในระดับโลกและตัวแปรตัวแปรท้องถิ่นสามารถเป็นชื่อเดียวกัน แต่ตัวแปรท้องถิ่นภายในฟังก์ชั่นจะได้รับการให้ความสำคัญ ตัวอย่างมีดังนี้
package main import "fmt" /* 声明全局变量 */ var g int = 20 func main() { /* 声明局部变量 */ var g int = 10 fmt.Printf ("结果: g = %d\n", g) }
ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:
结果: g = 10
พารามิเตอร์อย่างเป็นทางการ
พารามิเตอร์แบบฟอร์มเป็นหน้าที่ของตัวแปรท้องถิ่นที่ใช้ ตัวอย่างมีดังนี้
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; }
ตัวอย่างของการดำเนินงานของการส่งออกดังกล่าวข้างต้นเป็น:
main()函数中 a = 10 sum() 函数中 a = 10 sum() 函数中 b = 20 main()函数中 c = 30
เริ่มต้นตัวแปรท้องถิ่นและระดับโลก
ตัวแปรท้องถิ่นและระดับโลกที่แตกต่างกันของการเริ่มต้น:
ชนิดข้อมูล | เริ่มต้นเริ่มต้น |
---|---|
int | 0 |
float32 | 0 |
ตัวชี้ | ศูนย์ |