go言語でタイプアサーションを使用せずに、インターフェイスタイプパラメーターのプロパティにアクセスする方法は?
Golang Interfaceタイプパラメーター属性アクセス:タイプアサーションを避けます
この記事では、タイプアサーションに依存することなく、GO言語のインターフェイスタイプパラメーターのプロパティにアクセスする方法を紹介します。サンプルコードは、 doRun
関数がPhoneFoo
インターフェイスタイプのパラメーターを受信し、 IPhoneFoo
構造のos
属性にアクセスする必要があることを示しています。インターフェイスはメソッドのみを定義し、構造フィールドが含まれていないため、 phone.os
への直接アクセスはエラーを引き起こします。
元のコードは、インターフェイスがメソッドのみを定義し、基礎となる構造のフィールドに直接アクセスできないため、 phone.os
に直接アクセスしようとします。したがって、 os
属性にアクセスするために他の方法を使用する必要があります。
このペーパーでは、反射メカニズムを使用してこの問題を解決します。反射により、ランタイムチェックとオブジェクトタイプ情報の操作が可能になります。改良されたコードはreflect
パッケージを使用して実装します。
-
reflect.ValueOf(phone)
phone
インターフェイス変数の反射値を取得します。 -
phone
IPhoneFoo
構造へのポインターであるため、Elem()
メソッドを呼び出して、構造自体の値を取得します。 -
v.Field(0)
構造の最初のフィールド(0にインデックス付け)、つまりos
フィールドを取得します。 -
fmt.Println(os.String())
またはfmt.Println(os)
はos
フィールドの値を印刷します。os.Type()
フィールドタイプ情報を印刷します。
リフレクションを通じて、 IPhoneFoo
構造のos
属性値を動的に取得および印刷し、タイプアサーションによって引き起こされるコードの冗長性とメンテナンスの問題を回避します。この方法は、一般的なインターフェイスを備えたさまざまな種類のシナリオを処理するのに適しています。
以上がgo言語でタイプアサーションを使用せずに、インターフェイスタイプパラメーターのプロパティにアクセスする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

AppleのiPhone 17は、中国のHuaweiやXiaomiなどの強力な競合他社の影響に対処するための主要なアップグレードを導くかもしれません。デジタルブロガー@digitalチャットステーションによると、iPhone 17の標準バージョンは初めて高いリフレッシュレート画面を装備し、ユーザーエクスペリエンスを大幅に改善することが期待されています。この動きは、Appleが最終的に5年後に高いリフレッシュレートテクノロジーを標準バージョンに委任したという事実を示しています。現在、iPhone 16は、6,000元価格帯に60Hzの画面を備えた唯一のフラッグシップ携帯電話であり、少し遅れているようです。 iPhone 17の標準バージョンはリフレッシュレート画面が高くなりますが、ProバージョンのデザインはProバージョンのウルトラナローベゼル効果をまだ達成していないなど、プロバージョンと比較して違いがあります。注目に値するのは、iPhone 17 Proシリーズが真新しいものを採用することです

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

XMLファイルを表示するには2つの方法があります。Androidフォン:ファイルマネージャーまたはサードパーティアプリケーション(XML Viewer、Droidedit)を使用します。 iPhone:iCloud Driveを介してファイルを転送し、ファイルアプリまたはサードパーティアプリ(XML Buddha、Textastic)を使用します。

iPhoneに組み込みのXMLビューアーはありません。また、サードパーティのアプリケーションを使用して、XMLビューアーJSON ViewerなどのXMLファイルを開くことができます。方法:1。XMLビューアーをApp Storeにダウンロードしてインストールします。 2。iPhoneでXMLファイルを見つけます。 3. XMLファイルを押し続けると、「共有」を選択します。 4.インストールされているXML Viewerアプリを選択します。 5. XMLファイルはアプリで開きます。注:1。XMLビューアがiPhone iOSバージョンと互換性があることを確認してください。 2。ファイルパスを入力する際の症例感度に注意してください。 3.外部エンティティを含むXMLドキュメントには注意してください

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

GO言語は、効率的でスケーラブルなシステムの構築においてうまく機能します。その利点には次のものがあります。1。高性能:マシンコードにコンパイルされ、速度速度が速い。 2。同時プログラミング:ゴルチンとチャネルを介してマルチタスクを簡素化します。 3。シンプルさ:簡潔な構文、学習コストとメンテナンスコストの削減。 4。クロスプラットフォーム:クロスプラットフォームのコンパイル、簡単な展開をサポートします。

GOプログラミングのリソース管理:MySQLとRedisは、特にデータベースとキャッシュを使用して、リソースを正しく管理する方法を学習するために接続およびリリースします...
