Go の効果的な "if x in" 構文: Python の構造体との比較
Go はネイティブに "if x in" 構造体を提供しませんパイソンに似ています。ただし、配列またはスライスに対して同じ機能を実現し、より効率的なメンバーシップ チェックのためにマップを使用する効果的な手法があります。
配列とスライスの場合
In Go 1.18 以降では、スライスには Contains 関数が用意されており、 members:
if contains.Contains(array, "x") { // Perform actions }
Go 1.18 より前には、配列またはスライスのメンバーシップ チェック用の組み込み演算子はありませんでした。カスタム関数を実装できます。
func stringInSlice(a string, list []string) bool { for _, b := range list { if b == a { return true } } return false }
マップの場合
マップは、キーと値のペアを保存することで、より効率的なメンバーシップ チェックを提供します。要素がマップ内に存在するかどうかを確認するには、次の構文を使用します:
if visitedURL[thisSite] { // Perform actions }
ここで、visitedURL は、要素を表すキーとその存在を表す値 (たとえば、既存の要素の場合は true) を含むマップです。
以上がGo スライスとマップのメンバーシップを効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。