当前位置: 首页 > 面试题库 >

引用常量或包级别变量而不是功能级别变量

訾高明
2023-03-14
问题内容
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


 类似资料:
  • 问题内容: 哪种风格更好? 风格A: 风格B: 假设 在代码的其他地方没有使用,仅在此函数内部使用。 问题答案: 确实,如前所述,通常最好遵循PEP 8的建议,并在顶部进行导入。虽然有一些例外。理解它们的关键在于您在第二段中嵌入的问题:“导入在哪个阶段发生?” 导入实际上是一个可执行语句。导入模块时,模块中的所有可执行语句都会运行。“ def”也是可执行的语句;它的执行将使定义的名称与(已编译的)

  • 本文向大家介绍PHP全局变量与超级全局变量区别分析,包括了PHP全局变量与超级全局变量区别分析的使用技巧和注意事项,需要的朋友参考一下 本文分析了PHP全局变量与超级全局变量区别。分享给大家供大家参考,具体如下: 全局变量就是在函数外面定义的变量。不能在函数中直接使用。因为它的作用域不会到函数内部。所以在函数内部使用的时候常常看到类似global $a; 超全局变量作用域在所有脚本都有效。所以,在

  • 问题内容: 这是允许的: 但这不是: 为什么不?为什么不能在没有类型的情况下将函数外部的短变量声明视为常规声明?只是为了简化解析? 问题答案: 据伊恩·兰斯·泰勒(Ian Lance Taylor)在公开宣布后不久在此主题中提到: 在顶层,每个声明都以关键字开头。这简化了解析。

  • 问题内容: 下面的代码由于某种原因给我一个错误,有人可以告诉我这是什么问题。 基本上,我创建了2个Point&Circle类。Circle正在尝试继承Point类。 错误: 问题答案: 看起来您可能已经修复了原始错误,该错误是由错误消息所指示的,尽管您的修复稍有不正确,而不是应该使用的类。 请注意,在的方法中还有一个错误调用的地方: 这在Python 3上是有效的代码,但是在Python 2上需要

  • 想象一下我有: 输出: 我想要的是: 现在,正如我所说,这并没有把x设为3,而是把y设为3。我怎样才能改变它,使y充当指向x的指针。我想编辑x,而不是y。之前,我相信我看到了一个关于使用可变变量的页面。我不认为我完全理解Python中变量是如何工作的。

  • 我正在调查与GATT相关的蓝牙低能量(BLE)中可用的安全类型。更具体地说,当使用指定了不同安全级别(低、中、高)的gatttool时,会执行什么类型的操作?我的理解是,BLE中的安全管理器支持4种不同的安全属性: 没有配对 与不支持中间人(MitM)保护(JustWorks)的关联模型配对 与MitM保护配对(密码输入、数字比较、OOB) LE安全连接配对。 这些安全属性是否与gatttools