ホームページ  >  記事  >  バックエンド開発  >  go の var が構造体を初期化できるかどうかを調べる

go の var が構造体を初期化できるかどうかを調べる

藏色散人
藏色散人転載
2021-11-30 15:48:172567ブラウズ

この記事は、go language チュートリアル コラムで、golang で var で構造体を初期化できるかどうかという問題を紹介するもので、困っている友人の役に立てば幸いです。

背景

前の小さな記事では、最も単純な golang デモを構築するために goland を使用しただけであり、実用的な価値はなく、golang 構文を使用しています。このセクションでは、単純な初歩的な操作を完了し、golang のいくつかの一般的な操作をすぐに理解し、golang の基本的な文法をマスターできるようにします

文法を事前に学習してください

  • 文字列を int に変換する golang で strconv.Atoi メソッドを使用します
  • golang のメソッドの戻り値は複数の値を持つことができますが、これは golang とは異なります。たとえば、java の場合、map[id] のメソッドでは、最初の戻り値は value で、2 番目の戻り値は bool 型で、存在するかどうかを示します。 Java の json シリアル化メソッド、逆シリアル化は json.Unmarshal メソッド、最初のパラメーターはバイト配列、2 番目のパラメーターはシリアル化されたオブジェクトの

    "アドレス"、
  • には & を追加する必要があります、シリアル化メソッドは json.Marshal メソッドです。このメソッドによって返されるバイト配列に注意してください。
  • 上記のセクションで使用されている構文は、次の演習でよく使用されます。友達はそれを暗記するだけで済みます

Exercise

1. User クラスを定義し、golang を使用してこの構造体インスタンスの追加、削除、変更を完了するだけで、次のような構造体を定義します。 , 3 つの属性 Id、Name、Age

2 を持ちます。追加、削除、変更、クエリはメモリ内で行われ、データベースは使用されないため、次のことを定義する必要があります。以下のソースコードに示すように、データを保存するコンテナとして java. のようなグローバル変数を使用し、キーワード var を使用してグローバル変数マップを定義し、レコードを初期化します

go の var が構造体を初期化できるかどうかを調べる

3. 次に 4 つの "RequestMapping" を定義します。

go の var が構造体を初期化できるかどうかを調べる

3.1 getUser メソッドの主なロジックは、渡されたパラメーター ID を取得し、ユーザーの基本的な ID を取得することです。 idgo の var が構造体を初期化できるかどうかを調べる

3.2 saveUser に基づくグローバル変数からの情報 POST リクエストを処理します 現在開発中ですが、通常、対応するリクエストに渡された JSON データを解析します。それをグローバル変数に保存しますgo の var が構造体を初期化できるかどうかを調べる

3.3 updateUser は saveUpdate に似ています。簡単にするために、グローバル マップに対応する ID が存在するかどうかだけを判断し、変更します。属性の比較や置換を行わずに、この ID に対応するユーザー オブジェクトを取得します。go の var が構造体を初期化できるかどうかを調べる

3.4 deleteUser はさらに単純で、マップ内の対応する ID を削除するだけです。go の var が構造体を初期化できるかどうかを調べる

テストgo の var が構造体を初期化できるかどうかを調べる

1.getUser のテスト

#2.saveUser のテスト

go の var が構造体を初期化できるかどうかを調べる

go の var が構造体を初期化できるかどうかを調べる

3.UpdateUser テスト

go の var が構造体を初期化できるかどうかを調べる

go の var が構造体を初期化できるかどうかを調べる##4.

go の var が構造体を初期化できるかどうかを調べる

まとめ

このセクションでは、主にメモリの追加、削除、変更、検索を完了しますが、実際、golang の基本構文を完全にマスターすると、次のように感じられるはずです。幼稚ですが、問題ありません。新入生の中には何かを得た人もいるでしょう。上記のコードを注意深く見てみると、間違いなくいくつかの問題が見つかるでしょう。パラメータを解析する方法が 2 つしかないことがわかります。 1 つは localhost:9090/user?id=1 です。ID を取得するこの方法は、post リクエストで json を取得することです。Spring MVC の @requestMapping(value="/user/{name}/) を想像すると、それは localhost です。 :9090/user?id=1 で ID を取得します。ID を取得する方法は、投稿リクエストで JSON を取得することです。これを実行したい場合は、@requestMapping(value="/user/{name}/{id }") spring mvc では機能せず、@pathvariable メソッドを通じて取得します。パラメーター、これは日常の作業に非常に役立ちますが、残念ながら、golang はそのような比較的複雑なパラメーター バインディング作業をネイティブにサポートしていません。データ構造 Trie を通じてこの問題を解決します

ソースコードアドレス

https://github.com/BazingaLyn/jarvis

よろしければこの一連の入門チュートリアルをフォローして、「いいね」を押して集めていただければ、品質が 3 倍になります。ありがとうございます~

イースターエッグ

コードを手で入力すると、(writer http.ResponseWriter, request *http.Request) を何度も記述する必要があることがわかります。goland ショートカット キーをすばやく生成するメソッドが提供されていますが、ショートカット キーの設定は人それぞれ異なる可能性がありますが、次のメソッドを使用すると、メソッド

go の var が構造体を初期化できるかどうかを調べる

# をすばやく生成できます。

以上がgo の var が構造体を初期化できるかどうかを調べるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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