函数/结构/接口名称中允许使用哪些字符?

我是新手,已经开始玩A Tour of Go了。我注意到一个特殊之处,就是我可以命名一个函数,_但是不能调用该函数:

import "fmt"


type sel struct {

    s string

}


func _(s string) sel {

    return sel{s}

}


func main() {

    fmt.Println("Hello")

    _("foo") // <-- does not compile

}

如果我注释了整_("foo")行,则程序将编译。


我的问题是函数名称中允许使用哪些字符?仅仅是字母数字字符还是我可以使用$?


命名其他事物(例如结构,接口等)的规则是否与函数的规则相同?


慕田峪9158850
浏览 238回答 2
2回答

温温酱

该规范指出,FUNC,var或const名称必须与(开头unicode_letter或_),并且可以用任何(结束unicode_letter,unicode_digit或_)。unicode_letter&nbsp;可以是中文,也可以是希伯来字母。

拉风的咖菲猫

从规格下划线字符_表示的空白标识符可以像其他标识符一样在声明中使用,但该声明不会引入新的绑定。这就解释了为什么代码有效但您无法调用被调用的函数的原因&nbsp;__当您要分配变量但忽略它时,在Go中使用。调用函数_的功能相同-您已定义它,但编译器将忽略它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go