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 函数外部的全局变量并在外部函数内部访问它。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP