2016-11-26 104 views
-1

Go是否允许函数向签名添加数组长度约束,或者长度是否仍然需要运行时检查?Can Go函数可以指定特定的数组长度吗?

+5

阵列DO有修复长度。另一方面,切片不会,而且您无法通过函数签名强制切片长度。 –

+0

其实有一种方法。可能的重复[是否有可能触发编译时错误与自定义库在golang?](http://stackoverflow.com/questions/37270743/is-it-possible-to-trigger-compile-time-error-with-定制库中-golang/37271129#37271129) – icza

回答

2

对于数组而言,它是可能的,它是必需的。对于切片来说是不可能的。

package main 

import (
    "fmt" 
) 

func main() { 
    d := [2]int{1, 2} 
    fmt.Println(sum(d)) 
} 

func sum(data [2]int) int { 
    return data[0] + data[1] 
} 

https://play.golang.org/p/-VMxyDvwUt