2018-08-06

値渡ししかないとか勘弁してくれよ

iOS用のプログラム言語としてメジャーになりつつあるswiftは、Objective-Cベースにしているくせに、参照渡しは例外的しか認められず、事実上値渡し推奨である

これ、Javaとかから乗り換えてくると途方もなく面倒だからやめてほしいわ。

C++ベースにしたJavaは、逆にほぼ参照渡ししかない世界なのだから

なんでこんな意味不明言語仕様なのか。

  • var a = new object(); a = function(a);

    • そんな簡単なケースを言ってんじゃないんだよ。 それに、その例だったらinoutで行けるじゃんか。 問題は、構造体や配列系(Dictionary含む)のメンバーにポインタを使えないこと。 いちいち...

      • dictionaryでポインタ使えなかったら何か不都合ある?

        • 不都合あるどころか、すげー困る。 Dictionaryとして登録しておいたvalueをkeyで引っ張ってきて操作するなんて、JavaでもC#でも普通にやってた。 そういう操作前提にデータ構造を構築するの...

          • ああ、そのvalueを変更しても 値渡ししかないから、dictionaryの内部の値が変更されていないってことか!

            • そう、Dictionaryに格納されているvalueのコピーに対して操作していることになるから、変更内容がDictionary内のvalueには一切反映されない。 だからDictionaryや構造体を多用してデータ構造を構...

              • 使いづらそうな言語だね~。 そういう言語って何のためにハッシュあるんだろうね。

                • 入れ子的にハッシュでデータ構造を作った日には、おそらくkeyを使ってvalueを削除し、再セットすることを再帰的にやらないといけないと思われる。 こっちも学び始めて日が浅いし、そ...

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

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