[解決済み] 空の構造体をチェックする方法は?
2022-04-22 06:24:07
質問
構造体を定義する ...
type Session struct {
playerId string
beehive string
timestamp time.Time
}
時々、空のセッションを代入しています(nilはありえないので)
session = Session{};
次に、それが空であるかどうかをチェックしたい。
if session == Session{} {
// do stuff...
}
明らかにこれは動作していません。どう書けばいいのでしょうか?
どのように解決するのですか?
ゼロ値の複合リテラルとの比較には、すべてのフィールドが 比較可能 :
if (Session{}) == session {
fmt.Println("is zero value")
}
があるため パースのあいまいさ の場合、複合リテラルを括弧で囲む必要があります。
の使用は
==
は、構造体のすべてのフィールドが
比較可能
. 構造体に比較不可能なフィールド(スライス、マップ、関数)が含まれている場合、フィールドを1つずつゼロ値で比較する必要があります。
値全体を比較する代わりに、有効なセッションでゼロ以外の値を設定する必要があるフィールドを比較することもできます。たとえば、有効なセッションでプレーヤ ID が != "" でなければならない場合、以下を使用します。
if session.playerId == "" {
fmt.Println("is zero value")
}
関連
-
[解決済み] C++でクラスと構造体はいつ使い分けるべきか?
-
[解決済み] Goでマップにキーが含まれているかどうかを確認するには?
-
[解決済み] C++の'struct'と'typedef struct'の違い?
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?
-
[解決済み] 構造体のsizeofは、なぜ各メンバーのsizeofの合計と等しくないのですか?
-
[解決済み] 構造体変数をコンソールに表示するには?
-
[解決済み】構造体からフィールドを削除したり、JSONレスポンスでフィールドを隠したりする方法
-
[解決済み] 空の構造体をチェックする方法は?
-
[解決済み] Go インターフェース フィールド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン