私はGoの可能性を探求したいと考えています。どのようにメソッドに「追加」するのでしょうか?単に:goに「メソッド」を追加する方法
type T interface{}
type ST []interface{}
func (st []T) app (t T) []T {
return(append(st, t))
}
しかし、このコードでは、型の互換性をチェックしません: "st.app(T)==アペンド(ST、t)は、" これは私が得たものである
append([]int{1,2},"a") // correctly gives error
ST{1,2}.app("a") // dumbly gives [1 2 a] !!!
Iコードが型の互換性をチェックしない理由を知っていますが、それを行う正しい方法は何ですか?出来ますか? Goの仕組みを理解していただきありがとうございます。
Goコードはジェネリックをサポートしていないため、ジェネリックで型保護された関数を書くことはできません。これは、 'append'がstdlibの一部ではなく組み込み関数として実装されている理由です。 – Adrian