大部分语言里类型不能带变量,也就是说[m][n]int不是合法类型。这样的语言里arr := [m][n]int{} 这种语法没法合情合理,因为[m][n]int这一坨根本就不知道是个什么玩意儿。
java那种语法没必要地增加复杂性,new后面跟的并不是合法类型,而是只在new后面有效的特殊语法。
而你改一下make让它支持make([][]int, []int{m,n})则并不需要语法上弄什么特例。如果不是make([][]int, m, n)被占用了本来还可以再简单点儿。
【 在 dreamr 的大作中提到: 】
: 我知道你意思,如果go 支持用动态变量申请数组(注意不是slice),arr := [m][n]int{} 这种语法就合情合理了。
: 实际上java是支持这种语法的,比如new int[m][n] 返回的就是一个不可变数组。
--
FROM 58.37.61.*