#php エディター Strawberry では、今日は一般的なプログラミング手法、「nil をチェックして構造体から値を割り当てる」を紹介します。コードを記述するとき、構造体から特定のフィールドの値を取得する必要がある状況によく遭遇します。ただし、値が nil である可能性があるため、値を直接取得するとプログラムがクラッシュする可能性があります。この問題を解決するには、値を取得する前に nil チェックを実行してプログラムの安定性を確保する必要があります。この記事では、読者がこの手法をよりよく理解し、実際の開発に適用できるように、この手法の具体的な実装を詳しく紹介します。
構造体などの要素を含む構造体があります。
私の割り当てが次のとおりだとしましょう:
validfrom := dkdm.authenticatedpublic.requiredextensions.kdmrequiredextensions.contentkeysnotvalidbefore
このデータは動的であり、解析エラーまたはデータがないために、いつでもどの要素もゼロになる可能性があります。
たとえば、kdmrequiredextensions
は nil である可能性があり、contentkeysnotvalidbefore
にアクセスしようとすると、nil ポインター参照エラーがスローされます。
要素を取得し、値の連鎖を 1 つずつチェックし、要素が nil でない場合にのみ返すメソッドを持つことは可能ですか。
リーリー代入の前に if ステートメントを試しましたが、よりクリーンな方法を期待していました。
validfrom := checkandassign(dkdm.authenticatedpublic.requiredextensions.kdmrequiredextensions.contentkeysnotvalidbefore)
要素を受け入れ、値の連鎖を 1 つずつチェックし、要素が nil でない場合にのみ返すメソッドを持つことは可能ですか。
いいえ、Go にはそのような構文やツールはありません。
代入の前に if ステートメントを試しましたが、よりクリーンな方法を期待していました。
if
ステートメント は 「クリーンな」方法です。
以上がnil をチェックして構造体から値を代入するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。