我是golang的新手。是否可以将参数标记为函数常量? 这样就不会意外修改参数。
答案 0 :(得分:18)
不,这是目前无法实现的。有几种情况需要区分:
答案 1 :(得分:2)
对值传递的const参数仍然有一个方便的应用:你不能无意中改变初始值。
请考虑以下代码:
func Generate(count int) (value []byte) {
value = make([]byte, count)
for i:=0; i<count; count++ {
value[i] = byte(i) // just for an example
}
return
}
这是一个有效的Go代码,在编译期间没有警告或错误。这种拼写错误可能会让人痛苦。
答案 2 :(得分:1)
没有
您可以在函数体内声明一个常量,但不能作为参数声明。
在Go中,常量是在编译时创建的,永远不会改变,而函数参数必须在运行时随每次调用而改变。