2016-11-26 47 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

相關問題