天天看點

Go語言探索 - 7(原創)

Go語言基礎系列部落格用到的所有示例代碼

上一篇文章

 主要學習了Go語言的函數定義、值傳遞和引用傳遞以及閉包函數。本篇文章主要介紹的是Go 語言變量以及變量的作用域

Go 語言中變量跟Java的變量一樣,它可以在三個地方聲明:

A:函數内定義的變量稱為局部變量

B:函數外定義的變量稱為全局變量

C:函數定義中的變量稱為形式參數

說完了變量我們在說說變量的作用域。變量的作用域是指:為已聲明辨別符所表示的常量、類型、變量、函數或包定義其在源代碼中的作用範圍。

首先具體了解下Go語言中的局部變量、全局變量和形式參數(在上一篇文章也提到過)。

局部變量: 函數體内聲明的變量

稱之為局部變量,它們的作用域隻在函數體内,參數和傳回值變量也是局部變量。

Go語言探索 - 7(原創)

局部變量

其中這裡的紅色矩形代表的就是局部變量

全局變量: 函數體外聲明的變量

稱之為全局變量,全局變量可以在整個包甚至外部包(被導出後)使用。

Go語言探索 - 7(原創)

全局變量

可以看到 我們在方法外部定義的變量,通過useData這個函數也可以引用到它的值

但是值得注意的是,Go 語言程式中全局變量與局部變量名稱可以相同,但是函數内如果發現局部變量和全局變量同名時,函數内的局部變量會優先指派(這個跟Java一樣的,就近原則)

Go語言探索 - 7(原創)

就近原則

形式參數:

之前也說到了形式參數,一般是在方法上面定義的,但是它會作為函數的局部變量來使用。

Go語言探索 - 7(原創)

形式參數

其中,這裡的 a b就是形式參數,但是它的使用還是當成局部變量來進行邏輯使用。

還有,不同類型的局部和全局變量也是有預設值的(也就是你不指派,他們也有初始化預設值),int類型以及float類型的初始化預設值是0、pointer初始化預設值是nil(Java也叫空指針)

本篇文章主要學習的是Go語言變量類型以及變量的作用域,由于之前的文章也提到過這些概念,是以本篇文章重在了解與歸納。

如果這篇文章對你有幫助,希望各位看官留下寶貴的star,謝謝。

Ps:著作權歸作者所有,轉載請注明作者, 商業轉載請聯系作者獲得授權,非商業轉載請注明出處(開頭或結尾請添加轉載出處,添加原文url位址),文章請勿濫用,也希望大家尊重筆者的勞動成果。