2018-09-18

anond:20180918113105

んじゃ円ベースの以下の仮想クラスがあったとして、「ドル」「元」「ユーロ」をそれぞれ返すコードを考えればいいじゃん。

class Money{

private int yen = 99999;

}

ジェネリック使えるなら一行だぞ。

class Money{

private int yen = 99999;

public int get<MoneyType>(){

return this.yen / MoneyType.Rate;

}

}

  • 動的型付け言語でジェネリクスを使いたいの?

    • 使いたくなるやろ、普通に…

      • よくわからんので例を示してくれ ジェネリクス以前に静的型付したいということではなく?

        • よくあるパターンやと、「お金」ってデータを持っていた場合にどの通貨でのデータを持ってくるのかに対していちいち getDoll() getYen() とかで定義するのではなく get<MoneyType>()とか...

          • いやだからMoneyTypeとか、いらないじゃん Rubyは動的型付なんだから好きなもの返したらいいじゃん

            • んじゃ円ベースの以下の仮想クラスがあったとして、「ドル」「元」「ユーロ」をそれぞれ返すコードを考えればいいじゃん。 class Money{ private int yen = 99999; } ジェネリック使える...

              • だから、それ、オブジェクトがrateを持ってればいいだけでしょ? ジェネリクスいらないじゃん

                • 今回は便宜的にintを返しているが、型情報を貰うことで通貨であれば返り値をDollerMoneyオブジェクトとかにすることもでき、その際に「ドルのレートは期間により異なる。これは本日12:00-...

                  • だからそれジェネリクス以前に静的型付け使いたいって話でしょって

                    • これはジェネリクスじゃなきゃ到達不可。 <T>を指定したときに<T>を返すようにしてくれるコードは、静的型制約でももちろん書けるけれどもそれこそ DollerMoney getDollerMoney() み...

                      • 動的型付けなんだから何型でも自由に返せばいいじゃん 事前に型情報渡すのも自由にやればいいじゃん ジェネリクスが必要なのは「型チェックを有効にしつつ、型をパラメータ化したい...

                        • てめー、処理途中のメソッドが意味なく空オブジェクト返したりされたことねえのかよ。何の値が入って来るのかわからんから都度if(empty()) みたいなコード書いてねえのかよ。 それから...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん