
UnaryOperator<T>などがあれば、ああ、ジェネリクスにおいて任意のクラス型をここで使用するんだろうな、と言うのは分かりますが、複数あった場合のその記述の際のルールが未だ分かりません。
例えば、BiFunction<T,U,R>などでは、ああ、TがBiFunctionでの第一引数で使用される型、Uが第二引数で使用される型、Rが返り値の型なんだな、と言うことは分かるのですが、こうした並び・順序性に規則やルールはあるのでしょうか。
(型パラメータは任意の文字列を使用して良いと言うのは理解していますが、順序性において、参考書には記載がありませんでした。ネットで探しましたが、こちらも探し方が悪いのか見つかりません。)
基本的に関数型インターフェースでの戻り値ありのものの場合、返り値がある時には最後にそれを持ってこなければいけないだとか、あるいは引数が複数ある場合には、その順序性を保たなければならないだとかのルールです。
あるいは順序は関係なく、そのようなルールが無い、使用しているものを書けば良く、あえて分かりやすいように便宜的に皆こう記載している、と言うのであればその旨教えていただけると幸いです。
No.2ベストアンサー
- 回答日時:
はっきりしたものは無いけど
①一つの場合 T
②2つの場合 T、Uの順
③戻り型はRで最後に
④辞書タイプのクラスではではK(キー)、V(値)の順
⑤沢山有って順序が重要な時は A1、A2、A3・・・の順
他にも有った気がするけど
あんまりジェネリクスは自分で作ることは少ないので・・・
No.1
- 回答日時:
言語仕様としては
型パラメータ A が型パラメータ B に依存するなら B は A より前になければならない
はず (未確認) だけど, そのような依存関係のない型パラメータ同士ならどのような順序であってもかまわない. ただ, プログラムを「人間が見る」ことを考えれば, 型パラメータの名前や順序には「それなりに合理的な理由」を要求するのがふつうだと思うよ.
極論すれば「(T, U) -> R」に対して
WierdBiFunction<U, R, T>
としても*言語仕様としては*なんら問題ない. 問題ないけど... 「なるほど, それはいいや」って思います? それとも「こいつ, 頭おかしいんじゃね~か」って思いますか?
回答ありがとうございます。
なるほど・・・できればそれが明文化された規約があればそれを知りたい感じですよね。
>「それなりに合理的な理由」
が個々の人間で判断されて良いと言う自由なケースと、その一段だけ型に落とした「並びはこうしたものが推奨されます」だとか「特に規約はありませんが、一般的にはこうします」などなど。
オブジェクトの直列化の出力ファイルの拡張子がこんな感じですよね。
拡張子に特に決まりはないが、.serでつけることが一般的である、などなど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 順序集合における「反射律」の役割について 9 2022/05/09 23:01
- Excel(エクセル) [条件付き書式]の設定順の変更は可能か? 4 2022/12/07 10:37
- 高校 秩序づけるとは具体的にどうゆう意味ですか? 秩序の意味を調べたら「物事や社会を保つための順序や決まり 2 2022/04/23 08:58
- Visual Basic(VBA) Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。 3 2023/03/19 18:31
- 数学 複素関数にロピタルの定理を使おうとしている回答者は、複素関数論はおろか微積分学もよく分かっていない、 5 2022/12/28 18:02
- 英語 関係代名詞節内の複文の可否とルールについて 1 2022/08/02 11:08
- 数学 モデルのパラメータの定義がいまいちわかりません。 3 2022/10/11 15:16
- ヤフオク! Q1)ヤフオクで落札直後、裁判がどうこう言ういきなり出品者の身勝手で落札者に対して失礼な自己満ルール 6 2023/08/12 10:57
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でインターフェースのプロパ...
-
EventListenerの実装について
-
VBがオブジェクト指向言語でな...
-
【C#】クラスのコンストラクタ...
-
教えて下さい☆
-
クラスを使用したプログラミン...
-
interface,extend,implementの...
-
EJB(Enterprise Java Beans)のS...
-
なぜインタフェースを使うのか?
-
メソッドの公開レベルとか設計とか
-
C# 「データが失なわれる可能性...
-
Javaのインスタンス化の構文の...
-
「ひとつのインターフェースで...
-
親クラスのメソッドを別のパッ...
-
Commons-Discovery.jarとは?
-
JTextFieldの入力制限
-
単体テストのテストケースにて...
-
メソッドの引数にクラス名を渡す
-
このエラーメッセージの意味を...
-
C# 継承の問題で programに示さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# 「データが失なわれる可能性...
-
「継承されたメソッドの可視性...
-
(vba)他のアプリケーションの右...
-
【C#】クラスのコンストラクタ...
-
VB DLLプロジェクトについて
-
メソッドの引数にクラス名を渡す
-
「ラッパークラス」の存在意義...
-
interface,extend,implementの...
-
c++でのヘッダーファイルの循環...
-
このエラーメッセージの意味を...
-
委譲って何ですか?
-
ゲッターを使わないで変数にア...
-
Javaのインスタンス化の構文の...
-
ファイルパスが取得出来ない(P...
-
ASP.NETでの共通コードの書き方...
-
Commons-Discovery.jarとは?
-
デバッグ時に「Source not found」
-
JTextFieldの入力制限
-
JavaのimplementsをC言語で例え...
-
オーバーライドとラッパーの違い
おすすめ情報