2

したがって、定義済みStringのエイリアスである型があります。string

type String string

次に、次のメソッドを適用します。

func (s String) String() string {
    str := "'" + s + "'"
    return string(str)
}

次に、over rpc を含む構造体を送信しようとするStringと、次のエラーが発生します。

gob: type not registered for interface: dbUtils.String

同じ名前のインターフェイスを定義していないのに、どうしてこれがインターフェイスだと思うのでしょうか?

同様のタイプで同じエラーが発生しましたが、で解決しましたgob.Register(otherType{})。これはString、おそらくstringインターフェイスではないため、 では機能しません。私はいくぶん新しいので、何が起こっているのか説明してください。

4

2 に答える 2

2

String で動作するはずですが、識別子 String ではなく、String() オブジェクトのインスタンスを渡していることを確認してください。だから使うgob.Register(String(""))

于 2013-10-09T18:19:16.103 に答える
2

これは、あなたが達成しようとしていることの解決策になると思います:

http://play.golang.org/p/9OrSKfcCAQ

変数を「文字列」として明示的に宣言する必要があることに注意してください。":=" 割り当てを使用すると、それが文字列であると見なされ、関数が無視されます。

于 2013-10-09T19:00:00.913 に答える