私はGoを本当に好きですが、もしかしたら地獄について、そして他の言語のGoコードでデータ型を同期していると私は夢中になります。 Goの開発者は、Goの慣用的な解決策はコード生成だと言いますが、C/C++の場合はマクロを使って簡単に処理できますが、すぐに使用できる解決策は見つかりませんでした。慣用の生成/前処理ソリューションライブラリ?
だから、基本的に、私は必要なもの、それは特別な設定ファイルにリストされている場合、すべてのタイプの使用状況の確認のために、ソースを読む
- のようなものです。そうであれば、configから変更してください。
- 設定ファイルにリストされているかどうかに関わらず、すべての機能チェックのソースを読み込みます。それがそうであれば、テンプレートによる設定からコードスニペットで変更し、欠落している場合は必要なインポートを追加してください。
- おそらく、戻り値に基づいて多型を追加して、型キャストを防ぐことができます。
- おそらく、
(err error)
ロジックを追加します。それは良いアイデアだとは思わない。
この
は、私はおよそASTを行く知っ
func getConn(id platform.UUID) (res1 string, res2 platform.res) {
res1 = driver_native_res(id)
res2 = driver_native_res(id)
return
}
コード-gen.go
import (
"linux"
)
func getConn(id uint64) (res1 string, res2 int32, err error) {
res1, err = linux.GetResAsString(id)
if err != nil {
return
}
res2, err = linux.GetRes(id)
if err != nil {
return
}
return
}
をcode.goが、それはとてもではないように思えるのようにそのような機能を実装するのが早い。私はいくつか簡単な解決策があることを願っています
[本、ツール、ソフトウェアライブラリ、チュートリアル、またはその他のオフサイトリソースを推奨するかどうかを尋ねる質問は、オピニオン回答とスパムを引き付ける傾向があるため、スタックオーバーフローに関するトピックです。](https:// stackoverflow .com/help/on-topic) – Adrian