ホームページ >バックエンド開発 >Golang >構造フィールドを他の「パーツ」構造の値でオーバーライドする

構造フィールドを他の「パーツ」構造の値でオーバーライドする

WBOY
WBOY転載
2024-02-12 18:30:09993ブラウズ

構造フィールドを他の「パーツ」構造の値でオーバーライドする

php エディタ Xigua は、他の「部分」構造の値を使用して構造フィールドを上書きする方法を紹介します。プログラミングでは、さまざまな状況に応じて構造体フィールドの値を更新する必要があることがよくあります。この場合、ターゲット構造のフィールドを他の構造の値で上書きできます。この方法は非常に実用的で、コードの読みやすさと柔軟性を向上させることができます。次に、この手法を使用してコードを簡素化し、効率を高める方法について詳しく説明します。

質問内容

Goは初めてで、CRUD APIを作成しようとしています。 Go の OOP アプローチが賢明ではない可能性があることをご容赦ください。 PATCH エンドポイントを介して部分的に更新したい構造があります。

リーリー

書籍の更新可能なプロパティを含む 2 番目の構造を定義しました。

リーリー

どちらの構造でも、オプションのパラメーターをシミュレートするためにポインター属性を (おそらく悪用しているでしょうか) 使用しています。私が達成したいのは、PatchBookDto の任意のプロパティでブックを上書きすることです。これまでに私が試したことは次のとおりです:

リーリー

これをテストすると、「reflect.Value.Convert: value of type *string Cannot be Convert to type string」というエラーが発生します。

必要なものを得るためにここを改善できることを知っている人はいますか?

回避策

if dtoField.Type.Kind() ==reflect.Ptrのelseブロックにパニック行を入れるつもりのようです。

もう 1 つの方法は、間接ポインターを使用して値を設定することです。

リーリー

以上が構造フィールドを他の「パーツ」構造の値でオーバーライドするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。