Golang程序展示变量范围

在本文中,我们将编写Go语言程序,使用指针方法展示全局和局部变量的作用域。作用域在特定函数程序中指代码可访问性。

作用域可以分为全局和局部两种。全局指在main中声明的变量不能被任何修改覆盖,始终保持不变,而局部访问表示变量在函数内部修改后只能在函数内部使用,其作用域仅限于该函数。

使用相同的全局和局部变量

在这种方法中,我们将编写一个Golang程序,使用一个全局变量和一个同名的局部变量来描述变量的作用域。

算法

  • 步骤1 - 创建一个main程序包,并在该程序中声明fmt(格式化)程序包,其中main生成可执行代码,fmt帮助格式化输入和输出。
  • 步骤2 - 创建一个main函数,在该函数中创建一个全局变量name并将其赋值。

  • 步骤3 - 在控制台上打印全局设置的名称。

  • 步骤4 - 调用名为change_name的函数,并在该函数中将全局变量更改为先前设置的不同名称。

  • 步骤5 - 从fmt程序包中使用Println函数打印不同的名称以及调用函数后的名称,其中ln表示新行。

示例

以下示例演示如何创建一个Golang程序,使用相同的全局和局部变量来展示变量的作用域

package main

import "fmt"

func main() {

   name := "Veronica"
   fmt.Println("函数调用之前的名称:", name)  
   change_name()
   fmt.Println("函数调用之后的名称:", name)
}

func change_name() {    
   name := "Virushi"
   fmt.Println("函数内的名称:", name)  
}

输出

函数调用之前的名称:Veronica
函数内的名称:Virushi
函数调用之后的名称:Veronica

使用指针方法

在这种特殊方法中,我们将编写一个Golang程序,使用指针来展示变量的作用域。将创建一个名为a的变量,并分配稍后将递增的值。

算法

  • 步骤1 - 创建一个main程序包,并在该程序中声明fmt(格式化)程序包,其中main生成可执行代码,fmt帮助格式化输入和输出。
  • 步骤2 - 在main函数中创建一个名为a的变量并分配值。

  • 步骤3 - 从fmt程序包中使用Println函数打印a的值,其中ln表示新行。

  • 步骤4 - 在main中以指针的方式调用递增函数,并将a变量的地址传递给该函数。

  • 步骤5 - 在该函数中,使用*运算符递增指针指向的a变量的值。

  • 步骤6 - 使用Println函数在函数内部打印变量的值。

  • 步骤7 - 最后,像上一步中那样打印a变量的值,显示函数调用之后的变量值。

示例

以下示例将演示如何创建Golang程序,使用指针方法展示变量的作用域

package main

import "fmt"

func main() {
   a := 1 
   fmt.Println("调用函数前 a 的值为:", a)
   increment(&a)  
   fmt.Println("调用函数后 a 的值为:", a)
}

func increment(ptr *int) {
   *ptr++ 
   fmt.Println("函数内部的 a 值为:", *ptr)  
}

输出

调用函数前 a 的值为: 1
函数内部的 a 值为: 2
调用函数后 a 的值为: 2

在主函数之外使用全局变量

在这个例子中,我们将编写一个 Golang 程序,以显示使用全局变量在主函数之外的变量作用域。将创建一个外部函数,在其中将操作变量。

算法

  • 步骤 1 − 在程序中创建一个 package main 并声明 fmt(format package) package,其中 main 生成可执行代码,fmt 助于格式化输入和输出。
  • 步骤 2 − 创建一个全局变量并将一个字符串写入它。

  • 步骤 3 − 创建一个 main 函数,在其中进一步创建一个本地变量并将一个字符串赋给它。

  • 步骤 4 − 使用 Println 函数在控制台上打印局部变量。

  • 步骤 5 − 在这一步骤中,在主函数中访问全局变量并打印字符串。

  • 步骤 6 − 从主要的 callingFunction() 函数中调用函数。

  • 步骤 7 − 在这个函数中,使用相同的变量再创建一个本地变量并将其打印在控制台上。

  • 步骤 8 − 再次从另一个函数访问全局变量并打印其值。

  • 步骤 9 − 然后,更改全局变量的值并在控制台上打印更新后的值。

  • 步骤 10 − 使用 fmt 包的 Println 函数执行打印语句,其中 ln 表示换行。

示例

以下例子说明了使用全局变量在主函数之外显示变量作用域的 Golang 程序。

package main

import "fmt"

var global_variable = "我是一个全局变量"

func main() {
   var local_variable = "我是一个局部变量"
   fmt.Println(local_variable)  
   fmt.Println(global_variable) 
   callingFunction()
}

func callingFunction() {    
   var local_variable = "我是另一个局部变量"
   fmt.Println(local_variable)  
   fmt.Println(global_variable)     
   global_variable = "我是新的全局变量值"    
   fmt.Println(global_variable)
}

输出

我是一个局部变量
我是一个全局变量
我是另一个局部变量
我是一个全局变量
我是新的全局变量值

结论

我们编译并执行了三个示例,以显示使用三种不同方法展示变量作用域的 Golang 程序。第一个示例创建了一个字符串变量,并使用函数以不同的方式显示局部和全局变量。第二个示例使用指针方法,即将指向要增加变量的指针作为参数传递给函数。第三个示例中,我们将在主函数之外使用全局变量,并在外部函数中访问它。