問題タブ [gob]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
serialization - エクスポートされていないフィールドを持つ複雑なインターフェイスをシリアル化するにはどうすればよいですか?
複雑なインターフェイス(template.Template)をシリアル化する必要があります。未エクスポートのフィールドがたくさんあり、ゴブはそれらを操作したくありません。助言がありますか?
PS実際、私は解析されたテンプレートをAppEngineのmemcacheに配置しようとしています。
map - マップのキー/値を永続ファイルに保存する
多かれ少なかれ以下の形式の構造を作成します。
これらの値をファイルに書き込み、後続の呼び出しでそれらを読み取りたいと考えています。私の最初の計画は、それらをマップに読み込み、キー (パス) を使用して値 (ハッシュと LastModified) を検索することです。Goでこれを行うための巧妙な方法はありますか?
そうでない場合、どのファイル形式を推奨できますか? 以前のプロジェクトでいくつかのキー/値ファイル ストアについて読み、実験しましたが、Go は使用していません。現在、私の要件はおそらくかなり単純なので、大規模なデータベース サーバー システムはやり過ぎです。すばやく簡単に読み書きできるもの (Windows、Mac、Linux) が欲しいだけです。複数のプラットフォームに展開する必要があるため、go 以外の依存関係を最小限に抑えようとしています。
XML、CSV、JSON を検討しました。Go の gob パッケージを簡単に調べたところ、Go パッケージ ダッシュボードに BSON パッケージがあることに気付きましたが、それらが該当するかどうかはわかりません。
ここでの私の主な目標は、迅速に起動して実行することです。つまり、記述する必要があるコードの量を最小限に抑え、展開を容易にすることです。
tcp - Go プログラミングで TCP 経由で gob データを送信できません
TCP接続を使用するクライアントサーバーアプリケーションがあります
クライアント:
サーバ:
bytes.Buffer
から変数を取得する方法がわからないため、サーブの結果は {0, 0} ですnet.Conn
。
TCP 経由で gob 変数を送信する方法はありますか?
本当の場合、これはどのように行うことができますか? または、TCP 経由で番号を送信する方法はありますか?
ヘルプやサンプル コードをいただければ幸いです。
go - Go:パイプを介したgobの送信がハングしています-更新:アウトプロセスhttp.ResponseWriterがブロックされています
Goのアウトプロセスプログラムにリクエストを配信するウェブサーバーを書いています。gobを使用してパイプを介してResponseWriterとRequestのデータ型を送信しています。
問題は、ゴブを受け取ったときに外部プロセスがハングしていることです。
UPDATEゴブは外部プロセスに正常に送信されていますが、外部プロセスはでブロックされfmt.Fprintf(request.Resp, "Hello")
、そこでフリーズしています。
dispreq.go
dispatcher.go
hello.go
go - Gob を使用してインターフェースを復号化してエンコードする{}
Interface{} をフィールドとして含む構造体を逆エンコードしてエンコードしようとしています。
問題は、エンコーディングが正常に機能することですが、データをdata
値にデコードしようとすると{ <nil>}
.
Data interface{}
に変更すると実際には機能Data substring
しますが、クエリに応じて異なるタイプのデータベースにクエリの結果をキャッシュしたいので、これは私にとっては解決策ではありません。(例:Users
またはCookies
)
最小限の作業例
ソース
http://play.golang.org/p/aX7MIfqrWl
出力
期待される出力
エンコード: [37 255 129 3 1 1 4 68 97 116 97 1 255 130 0 1 2 1 4 78 97 109 101 1 12 0 1 4 68 97 116 97 1 255 132 0 0 0 29 255 131 7 8 3 1 11 98 84 121 112 101 1 255 132 0 1 1 1 3 70 111 111 1 12 0 0 0 19 255 130 1 6 70 111 111 66 97 114 1 1 4 84 101 115 116 0 0]
デコード: {FooBar {Test}}
現在の結果
エンコード: [37 255 129 3 1 1 4 68 97 116 97 1 255 130 0 1 2 1 4 78 97 109 101 1 12 0 1 4 68 97 116 97 1 255 132 0 0 0 29 255 131 7 8 3 1 11 98 84 121 112 101 1 255 132 0 1 1 1 3 70 111 111 1 12 0 0 0 19 255 130 1 6 70 111 111 66 97 114 1 1 4 84 101 115 116 0 0]
デコード: { }
go - インターフェイスに登録されていない名前
RPCを介して具体的な実装を送信しようとしています。RPCメソッドはインターフェイスを必要とします。
関連するコードスニペットは次のとおりです。
パッケージ内node
:
パッケージ内main
:
ノードを登録しました。ゴブでアプローチします。しかし、私が受け取っているメインプログラムを実行すると
私が間違っていることについて何か考えはありますか?または名前を登録する方法は?
types - Golang gob: タイプがインターフェースに登録されていません:
したがって、定義済みString
のエイリアスである型があります。string
type String string
次に、次のメソッドを適用します。
次に、over rpc を含む構造体を送信しようとするString
と、次のエラーが発生します。
同じ名前のインターフェイスを定義していないのに、どうしてこれがインターフェイスだと思うのでしょうか?
同様のタイプで同じエラーが発生しましたが、で解決しましたgob.Register(otherType{})
。これはString
、おそらくstring
インターフェイスではないため、 では機能しません。私はいくぶん新しいので、何が起こっているのか説明してください。
go - gob: タイプがインターフェースに登録されていません: map[string]interface {}
gob
エンコードに失敗するmap[string]interface{}
http://play.golang.org/p/Si4hd8I0JE
gobでエンコードできmap[string]interface{}
ますか?JSONでエンコードできます
performance - ソースコードでゴブを直接使用することは可能ですか?
gob エンコードされたデータをソース コード (関数など) で直接使用できるかどうかを知りたいです。その理由は、gob ファイルを取得するためにディスクにアクセスする必要がなくなるため、パフォーマンスが向上するためです。memcached、redis、および友人を認識しています。TTLやその他の派手な機能は必要ありません。メモリにマップするだけです。データはエンコードされ、「セットアップ」/ビルド プロセスでソース コードにダンプされるため、実行時に「デコード」するだけで済みます。
go アプリケーションは基本的に、小さな読み取り専用の組み込みデータベースとして機能します。jsonを使用してこれを行うことができます(基本的に生のjsonでvarを宣言します)が、パフォーマンスが低下すると思うので、gobで可能かどうか疑問に思っています。
私はさまざまなことを試しましたが、基本的には gob var (byte, [bytes] ?? ) を定義する方法がわからず、デコーダーが io.Reader を期待しているように見えるため、機能させることができません。これについて一日中、私はあなたに少なくともそれが可能かどうか尋ねることにしました。
惨めな試み:
次に、test.gob を関数に追加します。ご覧のとおり、test.gob のソースは次のようになっています。^H^L^@^Ehello