登录
首页 >  Golang >  Go问答

引用常量或包级别变量而不是函数级别变量

来源:Golang技术栈

时间:2023-04-30 13:29:20 132浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《引用常量或包级别变量而不是函数级别变量》主要内容涉及到golang等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

package main

import "fmt"

const name = "Yosua"
// or var name string = "James"

func main() {
    name := "Jobs"
    fmt.Println(name)
}

如何引用常量而不是函数级变量?

正确答案

你不能。虽然局部变量name在范围内,但名称name表示局部变量。并且没有“限定符”来引用顶级标识符。

规格:声明和范围:

在块中声明的标识符可以在内部块中重新声明。虽然内部声明的标识符在范围内,但它表示由内部声明声明的实体。

如果您需要同时访问顶级常量/变量和局部变量,请使用不同的名称。

如果由于某种原因您不能或不想,您可以先保存顶级常量或变量的值:

cname := name
name := "Jobs"
fmt.Println(name)
fmt.Println(cname)

或者您可以提供其他方式来访问它,例如一个函数:

func getName() string {
    return name
}

name := "Jobs"
fmt.Println(name)
fmt.Println(getName())

两种情况下的输出(在Go Playground上尝试):

Jobs
Yosua

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《引用常量或包级别变量而不是函数级别变量》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>