私が理解しているところでは、アサーションはインターフェイスでのみ使用でき、基本的には決定された型がインターフェイスを実装しているかどうかをチェックします。Golang型アサーションアレイ
私はいくつかの奇妙なシナリオを持っています:
func binder(value interface{}) {
// Does not work
valueInt, ok := value.(int)
// Works
valueInt, ok := value.(float64)
// Does not work
coordinates, ok := value.([]int)
// Does not work
coordinates, ok := value.([]float64)
}
は基本的に、私のvalue
は空のインターフェースであり、私はjson.Unmarshall
から取得しています。
シナリオ1
私は単純な整数を渡すとき、それは動作しませんが、私はそれが動作フロート...
シナリオがあるか確認してください、私は合格2
intまたはfloatの配列は機能しません!私がデバッグしているときにわかるように、私は配列を受け取っていますが、何らかの理由でアサーションが機能しません。
あなたは「動作しない」とはどういう意味ですか?どのようなアウトプットを受け取りましたか?代わりにあなたは何を期待しましたか? – Flimzy
'ok'がfalseであることを意味しません!しかし、あなたの答えは私のためにすべてを明確にしてくれます! –