宇宙船演算子
ナビゲーションに移動
検索に移動
![]() |
宇宙船演算子 (英: spaceship operator)、あるいは三方比較演算子 (英: three-way comparison operator) とは、比較演算子の一種である。
プログラミング言語における具体例[編集]
Perl (数値のみ)[1]、PHP (バージョン7以上)[2]、Ruby[3]、Apache GroovyはA < B
、A == B
、A > B
のケースでそれぞれ-1
、0
、1
を返す実装契約を規定している。Python 2.x[注 1]、OCaml、Kotlin[4]、Java[5]、.NET Framework[6]ではcmp
、compare
、compareTo
メソッドが同じ働きをする。C++でも、C++20から<=>
として使えるようになる予定[7]である。
Haskellでは、Ord
型クラスに定義されているcompare
関数を実装し、LT
、EQ
、GT
のいずれかを返さなければならない。[8]
C言語では、memcmp
とstrcmp
がメモリと文字列に対してそれぞれ比較を行う。
名称の由来[編集]
「宇宙船」と言われる由来は諸説ある:
関連項目[編集]
脚注[編集]
- ^ 3.xでは廃止されている
- ^ “Math::Complex”. Perl Programming Documentation. 2014年9月26日閲覧。
- ^ “PHP: 比較演算子”. 2019年12月6日閲覧。
- ^ “module Comparable (Ruby 2.7.0 リファレンスマニュアル)”. docs.ruby-lang.org. 2020年5月6日閲覧。
- ^ “compareTo - Kotlin Programming Language”. 2020年1月20日閲覧。
- ^ Javadoc:
Comparable<T>
- ^ dotnet-bot. “IComparable.CompareTo(Object) Method (System)” (英語). docs.microsoft.com. 2020年6月6日閲覧。
- ^ https://cpprefjp.github.io/lang/cpp20/consistent_comparison.html
- ^ “Data.Ord”. hackage.haskell.org. 2020年6月10日閲覧。
- ^ Fukazawa, Chihiro.; 深沢千尋. (2016). Kantan pāru. Tōkyō: Gijutsuhyōronsha. ISBN 978-4-7741-7791-5. OCLC 935070612