请问Golang中如何定义常量数组 jikai507 发布 2014-08-08 21:11 浏览 41377 回复 11 问与答 比如像这样定义: const list []string = []string{ "str1", "str2", "str3", } 可是编译器会报错的,试了很多其他的办法,但是没有成功的,大家有什么号办法吗
jemygraw 2014-08-08 23:30 这个时候,获取你需要的是这样的代码: package main import ( "fmt" ) func main() { var list = []string{"str1", "str2", "str3", "str4"} fmt.Println(list) } # 2
cb741044015 2014-08-09 15:34 常量和C#中的概念相同,在编译期被创建。因为在编译期必须确定其值,因此在声明常量时有一些限制。 其类型必须是:数值、字符串、布尔值 表达式必须是在编译期可计算的 声明常量的同时必须进行初始化,其值不可再次修改 # 4
bittoy 2016-06-09 12:51 var role_array [6][6]int = Role_role() func Role_role() [6][6]int { return [6][6]int{ {1, 1, 1, 1, 1, 1}, {0, 20, 0, 0, 0, 0}, {0, 0, 20, 0, 0, 0}, {0, 10, 10, 20, 0, 0}, {0, 10, 10, 10, 20, 0}, {1, 5, 5, 5, 5, 20}, } } # 10
共 11 个回复
jimmykuu
既然编译器都报错了,那就没办法了,此路不通。
jemygraw
首先,const是编译的时候能够确定值的。你数组或是切片无法达到这个要求的。
jemygraw
这个时候,获取你需要的是这样的代码:
jikai507
嗯。。。果断用var了。。 但是有点强迫症啊 因为是要用到常量的地方
cb741044015
常量和C#中的概念相同,在编译期被创建。因为在编译期必须确定其值,因此在声明常量时有一些限制。
name5566
类似的问题,一个函数返回一个结构体指针,我希望外部不能改变这个结构体的内容,是不是没法做?
jikai507
回复5楼,我的实例代码和这三条没什么出入吧
wangxufire
@jikai507 这么写后面的代码是可以改变list 的值的吧 我希望list是final的
stevewang
go里没有常量数组这种概念。
nuokesasi
go语言基础啊,go存储在常量中的数据类型只可以是布尔型,数字型(整型,浮点型和复数),字符串型
bittoy