宇宙船演算子

ウィキペディアから、無料の百科事典

宇宙船演算子 (英: spaceship operator)、あるいは三方比較演算子 (英: three-way comparison operator) とは、比較演算子の一種である。<=>演算子として実装されることが多い。

プログラミング言語における具体例

A <=> Bにおいて、Perl(数値のみ)[1]、PHP(バージョン7以上)[2]、Ruby[3]、Apache Groovyは、A < Bなら-1、A == Bなら0、A > Bなら1をそれぞれ返す実装契約を規定している。C++でも<=>演算子が同じ働きをする[注 1]。

Python 2.x ではcmp関数[5][注 2]、OCamlではcompare関数[6]、Kotlin[7]およびJava[8]ではcompareToメソッド、.NET FrameworkではCompareToメソッド[9]が同じ働きをする。

Haskellでは、Ord型クラスに定義されているcompare関数を実装し、LT、EQ、GTのいずれかを返さなければならない[10]。

C言語では、memcmpとstrcmpがメモリと文字列に対してそれぞれ比較を行う。

名称の由来

「宇宙船」と言われる由来は諸説ある:

関連項目

脚注

注釈

  1. ↑ C++20で 導入[4]。
  2. ↑ 3.x では廃止されている

出典

  1. ↑ “Math::Complex”. Perl Programming Documentation. 26 September 2014閲覧。
  2. ↑ “PHP: 比較演算子”. 2019年12月6日閲覧。
  3. ↑ “module Comparable (Ruby 2.7.0 リファレンスマニュアル)”. docs.ruby-lang.org. 2020年5月6日閲覧。
  4. ↑ “一貫比較”. cpprefjp - C++日本語リファレンス. 2019年11月15日閲覧。
  5. ↑ “2. 組み込み関数”. Python 2.7.18 ドキュメント. Python 標準ライブラリ. Python. 2022年8月4日閲覧。
  6. ↑ “Pervasives”. ocaml.jp. 2022年8月4日閲覧。
  7. ↑ “compareTo - Kotlin Programming Language”. 2020年1月20日閲覧。
  8. ↑ Javadoc: Comparable<T>
  9. ↑ dotnet-bot. “IComparable.CompareTo(Object) Method (System)” (英語). docs.microsoft.com. 2020年6月6日閲覧。
  10. ↑ “Data.Ord”. hackage.haskell.org. 2020年6月10日閲覧。
  11. ↑ Fukazawa, Chihiro.; 深沢千尋. (2016). Kantan pāru. Tōkyō: Gijutsuhyōronsha. ISBN 978-4-7741-7791-5. OCLC 935070612