github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/cmp/cmp.go (about)

     1  // Copyright 2023 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // パッケージcmpは、順序付けられた値を比較するための型と関数に関連するものを提供します。
     6  package cmp
     7  
     8  // Ordered < <= >= >演算子をサポートする任意の順序付けられた型を許可する制約です。
     9  // もし将来のGoリリースで新しい順序付けられた型が追加された場合、
    10  // この制約はそれらを含めるように変更されます。
    11  //
    12  // 浮動小数点型にはNaN(「非数」)値が含まれる場合があります。
    13  // NaN値と他の値、NaNであろうとなかろうと、比較演算子(==、<など)は常にfalseを報告します。
    14  // NaN値を比較する一貫した方法については、 [Compare] 関数を参照してください。
    15  type Ordered interface {
    16  	~int | ~int8 | ~int16 | ~int32 | ~int64 |
    17  		~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
    18  		~float32 | ~float64 |
    19  		~string
    20  }
    21  
    22  // Less xがyより小さい場合にtrueを報告します。
    23  // 浮動小数点型にはNaN(「非数」)値が含まれる場合があります。
    24  // NaN値は、任意の非NaN値よりも小さいと見なされ、-0.0は0.0より小さくありません(等しいです)。
    25  func Less[T Ordered](x, y T) bool { return false }
    26  
    27  // Compareは、
    28  //
    29  //	xがyより小さい場合は-1、
    30  //	xがyと等しい場合は0、
    31  //	xがyより大きい場合は+1を返します。
    32  //
    33  // 浮動小数点型にはNaN(「非数」)値が含まれる場合があります。
    34  // NaN値は、任意の非NaN値よりも小さいと見なされ、NaN値はNaN値と等しく、-0.0は0.0と等しいです。
    35  func Compare[T Ordered](x, y T) int { return 0 }
    36  
    37  // Orは、ゼロ値でない最初の引数を返します。
    38  // 引数が非ゼロでない場合、ゼロ値を返します。
    39  func Or[T comparable](vals ...T) T { return vals[0] }