- 【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
885 :デフォルトの名無しさん[sage]:2015/02/23(月) 20:56:48.09 ID:QjP2ga8a - 使われることのないSymbolは当然GCの対象にならないとおかしい。
| - 【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
890 :デフォルトの名無しさん[sage]:2015/02/23(月) 21:34:39.10 ID:QjP2ga8a - >>886
>>Symbolは本来ソースコード上の識別子を表すものなんだから だからそもそもそれが不味いんだろう。 JSのような仕様にしておけば気軽に間違いを犯すことはなかった。 JSだと「:sym」と同等の存在は「Symbol.for('sym')」とわざわざしないと生まれない。 Symbolは基本的にユニークな存在で「Symbol('sym') != Symbol('sym')」だ。 それでもパフォーマンスと利便性は確保出来てる。
| - 【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
892 :デフォルトの名無しさん[sage]:2015/02/23(月) 22:06:56.37 ID:QjP2ga8a - 互換性というより醜いからだな。特にオブジェクトが連想配列なJSでそういうのができるのは。
それにSymbolはむしろユニークでかぶらないってところが重要で、存在意義を産んでる。 文字列の亜種みたいな扱いにしてしまうからそんな問題が起きる。
| - 【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
894 :デフォルトの名無しさん[sage]:2015/02/23(月) 22:35:14.21 ID:QjP2ga8a - ObjectをキーにしたければMapを使えばいいじゃない。
それにオブジェクトがオブジェクトのキーに普通に使えたとしても、 Hashを求めないといけないんじゃ、パフォーマンスは期待できないよね。 だからこそプリミティブ型としてのSymbolがあるんでしょ?
| - 【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
896 :デフォルトの名無しさん[sage]:2015/02/23(月) 23:26:36.47 ID:QjP2ga8a - というかObjectの場合はHashじゃなくてObjectが作られるたびにインクリメントされるIDを付与していく形になるだろうな。
|
|