Java學習-day1-Java簡介一
阿新 • • 發佈:2020-12-25
技術標籤:go語言
1、變數
2、全域性變數
1、全域性變數宣告
- 定義在{ }外面的是全域性變數
- 只允許全域性變數在宣告時賦值,不允許全域性變數聲明後再改變全域性變數的值
//不報錯
var c chan bool=make(chan bool)
//報錯
var a chan bool
a=make(chan bool)
func main(){
go eat(a)
fmt.Println(<-a)
}
func eat(){
fmt.Println("eat")
a<- true
}
3、區域性變數
- 定義在{ }裡面的變數時區域性變數,只能在{ }裡面有效
- 執行到定義的那句話,開始分配記憶體空間,離開作用域自動進行釋放
4、不同作用域中,同名變數
- 不同的作用域,允許定義同名的變數
- 使用變數的原則,就近原則,如果區域性變數沒有,就去全域性變數中找
5、make和new的區別
1、make
- make 被用來分配引用型別變數的堆記憶體,從而初始化該變數,只有slice,map,channel這3種
- make還是返回的引用型別變數本身;
- 引用型別變數,使用var聲明後,必須使用make進行初始化,不然沒有記憶體,不能賦值
2、new
- new 被用來分配除了引用型別以外的任意型別變數的堆記憶體:int, string, 陣列等
- new返回的是指向型別的指標
- new把記憶體置為零
//使用new關鍵字建立一個數組
func main() {
a := new([5]int)
fmt.Println(a)
}