Pab*_*hes 5 constants immutability go
我正在解决一些练习以进行围棋练习,并遇到了以下问题。
采取这个功能:
func foo(s string) {
length := len(s);
// Do something just reading from lenght
}
Run Code Online (Sandbox Code Playgroud)
在这里,由于使用其他语言编程,我的想法立即想到“长度不会被修改,因此应该将其标记为const”。
所以我这样做了:
const length = len(s);
Run Code Online (Sandbox Code Playgroud)
但它给了我以下错误:
const initializer len(s) is not a constant
Run Code Online (Sandbox Code Playgroud)
我想这是因为len(s)无法“在编译时”计算(不确定这对于 go 来说是否是 100% 正确)。
有什么办法表明length不应该修改吗?我在谷歌中搜索,但没有发现任何有用的东西。我对不可变结构有一些了解,但我认为它对于我想做的事情来说太复杂了。