Go語言程式演示變數作用域


在本文中,我們將編寫 Go 語言程式,使用指標方法演示全域性變數和區域性變數的作用域。作用域指的是程式碼在程式中,特別是某個函式中,的可訪問性。

作用域可以定義為兩種方式:全域性和區域性。全域性意味著在 main 函式中宣告的變數不能被任何修改覆蓋,並且在任何地方都保持不變;而區域性訪問意味著當變數在函式內部被修改時,它只能在函式內部使用,其作用域僅限於該函式。

使用相同的全域性變數和區域性變數

在這種方法中,我們將編寫一個 Go 語言程式,使用一個全域性變數和一個具有相同名稱的區域性變數來描述變數的作用域。

演算法

  • 步驟 1 - 建立一個 package main 並宣告 fmt(格式化包)包在程式中,其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出。

  • 步驟 2 - 建立一個 main 函式,並在該函式中建立一個全域性變數 name 併為其賦值

  • 步驟 3 - 在控制檯上列印全域性設定的 name

  • 步驟 4 - 呼叫名為 change_name 的函式,並在該函式中將全域性變數更改為與之前設定不同的名稱

  • 步驟 5 - 在控制檯上列印不同的名稱,以及使用 fmt 包中的 Println 函式呼叫函式後的名稱,其中 ln 表示換行

示例

以下示例將演示如何建立一個 Go 語言程式,使用相同的全域性變數和區域性變數來顯示變數的作用域

package main

import "fmt"

func main() {
	
   name := "Veronica"
   fmt.Println("Name before function call:", name)	
   change_name()
   fmt.Println("Name after function call:", name)
}

func change_name() {	
   name := "Virushi"
   fmt.Println("Name inside function:", name)  
}

輸出

Name before function call: Veronica
Name inside function: Virushi
Name after function call: Veronica

使用指標方法

在這種特定方法中,我們將編寫一個 Go 語言程式,使用指標來顯示變數的作用域。將建立一個名為 a 的變數併為其賦值,稍後將對其進行遞增。

演算法

  • 步驟 1 - 建立一個 package main 並宣告 fmt(格式化包)包在程式中,其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出

  • 步驟 2 - 在 main 函式內部建立一個名為 a 的變數併為其賦值

  • 步驟 3 - 使用 fmt 包中的 Println 函式列印 a 的值,其中 ln 表示換行

  • 步驟 4 - 在 main 函式中呼叫 increment 函式,並將指向“a”變數的指標傳遞給它

  • 步驟 5 - 在函式中,使用 * 運算子遞增指標指向的 a 的值

  • 步驟 6 - 使用 Println 函式在函式內部列印值

  • 步驟 7 - 最後,在函式呼叫後列印 a 的值,就像在最後幾個步驟中所做的那樣

示例

以下示例將展示如何建立 Go 語言程式,使用指標方法來顯示變數的作用域

package main

import "fmt"

func main() {
   a := 1 
   fmt.Println("Value of a before the function is called:", a)
   increment(&a)  
   fmt.Println("Value of a after the function is called:", a)
}

func increment(ptr *int) {
   *ptr++ 
   fmt.Println("Value of a inside function:", *ptr)  
}

輸出

Value of a before the function is called: 1
Value of x inside function: 2
Value of a after the function is called: 2

在 main 函式外部使用全域性變數

在此示例中,我們將編寫一個 Go 語言程式,使用 main 函式外部的全域性變數來顯示變數的作用域。將建立一個外部函式,在其中操作變數。

演算法

  • 步驟 1 - 建立一個 package main 並宣告 fmt(格式化包)包在程式中,其中 main 生成可執行程式碼,fmt 幫助格式化輸入和輸出

  • 步驟 2 - 建立一個全域性變數並向其中寫入一個字串

  • 步驟 3 - 建立一個 main 函式,在其中進一步建立一個區域性變數併為其賦值一個字串

  • 步驟 4 - 使用 Println 函式在控制檯上列印區域性變數

  • 步驟 5 - 在此步驟中,在 main 函式中訪問全域性變數並列印字串

  • 步驟 6 - 從 main 函式呼叫 callingFunction() 函式

  • 步驟 7 - 在此函式中,使用相同的變數建立另一個區域性變數並將其列印到控制檯

  • 步驟 8 - 再次從另一個函式訪問全域性變數並列印其值

  • 步驟 9 - 然後,更改全域性變數的值並在控制檯上列印更新後的值

  • 步驟 10 - 列印語句使用 fmt 包中的 Println 函式執行,其中 ln 表示換行

示例

以下示例說明了使用 main 函式外部的全域性變數來顯示變數作用域的 Go 語言程式

package main

import "fmt"

var global_variable = "I am a global variable"

func main() {
   var local_variable = "I am a local variable"
   fmt.Println(local_variable) 	
   fmt.Println(global_variable)	
   callingFunction()
}

func callingFunction() {	
   var local_variable = "I am another local variable"
   fmt.Println(local_variable) 	
   fmt.Println(global_variable) 	
   global_variable = "I am a new global variable value"	
   fmt.Println(global_variable)
}

輸出

I am a local variable
I am a global variable
I am another local variable
I am a global variable
I am a new global variable value

結論

我們編譯並執行了使用三個示例顯示變數作用域的程式。在第一個示例中,我們建立了一個字串變數並使用函式以不同的方式顯示區域性變數和全域性變數。在第二個示例中,使用了指標方法,即指標作為引數傳遞給函式,指向要遞增的變數;在第三個示例中,我們將使用 main 函式外部的全域性變數並在外部函式內部訪問它。

更新於: 2023年4月4日

223 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.