3つの値の平等をチェックするエレガントに
一方、a == b == cの場合の従来のアプローチは、構文エラーをもたらす場合、3つの値が等しいかどうかを判断する代替方法があります。アプローチ
最も単純なソリューションは残ります:
if a == b && a == c { fmt.println( "3つすべてが等しい") }
if a == b && a == c {
fmt.Println("All 3 are equal")
}
の場合、マップの長さを1と比較することにより、すべての値が等しいかどうかを確認できます。
fmt.println( "3つすべてが等しい")
}
with arrays:
arraysは同等であり、複数の要素を一度に比較することができます:if [2] interface {} {a、b} == [2]インターフェイス{{} {} {} {} {} {} fmt.println( "3つすべてが等しい") }
トリッキーマップを使用して:
if len(map[interface{}]int{a: 0, b: 0, c: 0}) == 1 {
fmt.Println("All 3 are equal")
}
fmt.println( "3つすべてが等しい") }
を匿名の構造物を使用して:
if [2]interface{}{a, b} == [2]interface{}{b, c} {
fmt.Println("All 3 are equal")
}
if struct {a、b interface {{}} {a、b} == strut } {b、c} { fmt.println( "3つすべてが等しい") }
with slices:
if map[interface{}]bool{a: b == c}[b] {
fmt.Println("All 3 are equal")
}
を使用します。 fmt.println( "3つすべてが等しい") }
ヘルパー関数を使用:
if struct{ a, b interface{} }{a, b} == struct{ a, b interface{} }{b, c} {
fmt.Println("All 3 are equal")
}
Funcのallquals(v ... interface {})bool { LEN(V)> 1の場合{ a:= v [0] _、s:= range v { a!= s {の場合 falseを返します } } } trueを返します }
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3