何気なくGoのsortパッケージのdocを眺めていたら、冒頭にこんな感じのサンプルが書かれていたんですよ。 sort.Slice(people, func(i, j int) bool { return people[i].Age > people[j].Age }) 要素の大小関係を比較する関数が、compareとかcmpって名前じゃなくて、lessと名付けられていて、しかもbool値を返すようになっている!! 個人的にtimeのFormat構文レベルでびっくりしたんだけど、特にググってもびっくりしてる人が見当たらなかったので記事にまとめます。 ※ちなみに経緯が調べきれなかったので、読み終わってもすっきりしない記事です!! sortのcomparatorと言えばintじゃないの?! ユーザー定義の比較関数を使って配列をソートする関数や機構は、さまざまな言語で実装されています。この比較関数