2020-11-15

anond:20201115004825

同じ型だけど違うプロパティなんて無限にあるぞ。特に真偽値、数値、文字列なんて無限に違うプロパティあるぞ。それで型だけで勝手setできるわけがない。仮に一つの型は一つのプロパティみたいな意味不明ルールがあったとして、呼び出し側からすると全部setなわけで、同じsetだけを探し出して安全に書き換えるとかほぼ不可能でしょう。

記事への反応 -
  • 文字数というか単語数が多いとわかりづらくなるよね。 できればget/setみたいなシンプルな一単語にしたい。 まあたいていは二語以上にはなっちゃうけど、三つ以上だと長く感じる。 一...

    • 1語に出来るのはinitializeや主処理のexecuteくらいのもんで 基本1語は無理やろ

      • まあ確かに1語だけで済むケースは少ないと思う。 でも、冗長な名前になってるなっていうのはあって、例えば void setHoge(Hoge hoge) みたいなのだと、パラメータの型名でHogeをsetするのは...

        • どのプロパティ追加してんのか分からなくなるしリファクタリングしにくくなるからダメ

          • どのプロパティかは型名見ればわかるじゃん?まあ同じ型の違うプロパティが複数あったらダメだけど。 リファクタリングはIDEに任せればいいと思う。

            • 同じ型だけど違うプロパティなんて無限にあるぞ。特に真偽値、数値、文字列なんて無限に違うプロパティあるぞ。それで型だけで勝手にsetできるわけがない。仮に一つの型は一つのプ...

              • そうだね。setterの種類を型名で区別するのは無理があるなと書いてて思った。 例が悪いなすまん。

              • Haskell ならできるよ。そしてそれが理想のかたち。 hoge を set したい。hoge の型は Hoge だから setHoge かな… みたいな思考はコンピュータ側に任せるべき。

        • セッターがhogeしかないならまあいいけど set(Hage hage)とかあるとやだわ

        • 名前付き変数という仕組みはこの問題をかなり筋良く解決しているように思う。 例えばSwiftで func set(hoge: Int) を呼び出す時は obj.set(hoge: 42) と書く。 メソッドのオーバーロードも名前単位...

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

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