在
上一篇文章主要學習了Go語言的函數定義、值傳遞和引用傳遞以及閉包函數。本篇文章主要介紹的是Go 語言變量以及變量的作用域
Go 語言中變量跟Java的變量一樣,它可以在三個地方聲明:
A:函數内定義的變量稱為局部變量
B:函數外定義的變量稱為全局變量
C:函數定義中的變量稱為形式參數
說完了變量我們在說說變量的作用域。變量的作用域是指:為已聲明辨別符所表示的常量、類型、變量、函數或包定義其在源代碼中的作用範圍。
首先具體了解下Go語言中的局部變量、全局變量和形式參數(在上一篇文章也提到過)。
局部變量: 函數體内聲明的變量稱之為局部變量,它們的作用域隻在函數體内,參數和傳回值變量也是局部變量。

局部變量
其中這裡的紅色矩形代表的就是局部變量
全局變量: 函數體外聲明的變量稱之為全局變量,全局變量可以在整個包甚至外部包(被導出後)使用。
全局變量
可以看到 我們在方法外部定義的變量,通過useData這個函數也可以引用到它的值
但是值得注意的是,Go 語言程式中全局變量與局部變量名稱可以相同,但是函數内如果發現局部變量和全局變量同名時,函數内的局部變量會優先指派(這個跟Java一樣的,就近原則)
就近原則
形式參數:之前也說到了形式參數,一般是在方法上面定義的,但是它會作為函數的局部變量來使用。
形式參數
其中,這裡的 a b就是形式參數,但是它的使用還是當成局部變量來進行邏輯使用。
還有,不同類型的局部和全局變量也是有預設值的(也就是你不指派,他們也有初始化預設值),int類型以及float類型的初始化預設值是0、pointer初始化預設值是nil(Java也叫空指針)
本篇文章主要學習的是Go語言變量類型以及變量的作用域,由于之前的文章也提到過這些概念,是以本篇文章重在了解與歸納。
如果這篇文章對你有幫助,希望各位看官留下寶貴的star,謝謝。
Ps:著作權歸作者所有,轉載請注明作者, 商業轉載請聯系作者獲得授權,非商業轉載請注明出處(開頭或結尾請添加轉載出處,添加原文url位址),文章請勿濫用,也希望大家尊重筆者的勞動成果。