1. 程式人生 > 其它 >Java學習-day1-Java簡介一

Java學習-day1-Java簡介一

技術標籤: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、區域性變數

  1. 定義在{ }裡面的變數時區域性變數,只能在{ }裡面有效
  2. 執行到定義的那句話,開始分配記憶體空間,離開作用域自動進行釋放

4、不同作用域中,同名變數

  1. 不同的作用域,允許定義同名的變數
  2. 使用變數的原則,就近原則,如果區域性變數沒有,就去全域性變數中找

5、make和new的區別

1、make

  1. make 被用來分配引用型別變數的堆記憶體,從而初始化該變數,只有slice,map,channel這3種
  2. make還是返回的引用型別變數本身;
  3. 引用型別變數,使用var聲明後,必須使用make進行初始化,不然沒有記憶體,不能賦值

2、new

  1. new 被用來分配除了引用型別以外的任意型別變數的堆記憶體:int, string, 陣列等
  2. new返回的是指向型別的指標
  3. new把記憶體置為零
//使用new關鍵字建立一個數組
func main() {
a := new([5]int)
fmt.Println(a)
}