ホームページ > バックエンド開発 > Golang > go-couchdb を使用すると CouchDB で大文字の構造体フィールドだけが更新されるのはなぜですか?

go-couchdb を使用すると CouchDB で大文字の構造体フィールドだけが更新されるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-05 05:01:45
オリジナル
994 人が閲覧しました

Why Are Only Capitalized Struct Fields Updated in CouchDB Using go-couchdb?

大文字の使用は CouchDB 構造体のデータ ストレージに影響します

「github.com/mikebell-org/go-couchdb」ライブラリを利用してアクセスする場合CouchDB では、特殊な問題が発生します。頭文字が大文字の構造体フィールドのみがデータベースで更新されます。 inserts.

例:

type Person struct {
    name string
    Age  int
}
ログイン後にコピー

データベースに Person インスタンスを挿入すると:

joe := Person{
    name: "mike",
    Age:  190,
}
ログイン後にコピー

Age フィールドのみが追加されますデータベース。名前など、他の小文字のフィールドは省略されます。

動作の背後にある理由:

この動作は、フィールドの頭文字が小文字であることを規定している Go 言語仕様に由来しています。文字はエクスポートされません。その結果、JSON シリアル化パッケージ (json など) には、明示的に指示された場合にのみ、これらのフィールドが含まれます。

問題の解決:

小文字フィールドを組み込むにはデータベースに追加するには、JSON タグを利用します:

type Person struct {
    name string `json:"name"`
    Age  int    `json:"Age"`
}
ログイン後にコピー

json タグを指定すると、小文字の名前フィールドがJSON シリアル化用に明示的に公開され、データベースに永続化できるようになります。 JSON タグの詳細については、ドキュメントを参照してください。

以上がgo-couchdb を使用すると CouchDB で大文字の構造体フィールドだけが更新されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート