7
看到這個運動場:http://play.golang.org/p/nWHmlw1W01由於接口傳遞不爲零而無切片!爲什麼? (golang)
package main
import "fmt"
func main() {
var i []int = nil
yes(i) // output: true
no(i) // output: false
}
func yes(thing []int) {
fmt.Println(thing == nil)
}
func no(thing interface{}) {
fmt.Println(thing == nil)
}
爲什麼在兩種功能之間輸出的區別?
Gotcha。感謝您的澄清 - 我應該去看文檔。因此,在這種情況下,零檢查必須是這樣的:http://play.golang.org/p/M_z1I5iGeW – mdwhatcott
http://research.swtch.com/interfaces提供了更多的細節,如果你有興趣。 – alex
TXG golang ......大量使用的接口寫程序是一場噩夢 – let4be