- 【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
939 :デフォルトの名無しさん[sage]:2015/02/25(水) 07:52:04.61 ID:9jad7y3g - RubyでSymbolが多用されるのはインターンなんて関係なくて
単に記述が簡易なのと辞書の { キー: 値 } 記法を使ったら嫌でもキーがSymbolになってしまうのと メソッドを動的に定義したり取得したりするのにSymbolしか使えないから(文字列渡せたりするが内部で変換している)
| - 【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
940 :デフォルトの名無しさん[sage]:2015/02/25(水) 08:00:32.40 ID:9jad7y3g - あと勘違いしているようだけど組み込みのStringクラスを持つ大抵の言語(Python/JS/Java/C#…)では
勝手にインターンされるのは文字列リテラルだけ 書き忘れてたけどRubyでSymbolが多用される大きな理由の一つに「Stringがミュータブルだから」というのがある キーとしてミュータブルなオブジェクトを使用すると外から書き換えられてハッシュがぶっ壊れる恐れがあるからね 元々Stringがイミュータブルならインターンされてるかどうかはあまり重要ではない
| - 【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
941 :デフォルトの名無しさん[sage]:2015/02/25(水) 08:06:38.60 ID:9jad7y3g - そしてシンボルGCはリテラルのシンボルは絶対に回収しない仕様なので、
これによってSymbolは他言語のイミュータブルなStringとかなり近い存在になったわけだ いったんインターンする分だけ生成にコストがかかるのとStringと互換性がなくてクソ不便な以外はね
| - C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
710 :デフォルトの名無しさん[sage]:2015/02/25(水) 20:19:07.06 ID:9jad7y3g - COBOLみたいに代入並べるんだろ
| - 【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
966 :デフォルトの名無しさん[sage]:2015/02/25(水) 22:01:20.15 ID:9jad7y3g - 生物系なんか宮廷卒のSEとか山ほどいるよ
|
|