トップページ > プログラム > 2015年02月22日 > vo1EKyKq

書き込み順位&時間帯一覧

3 位/252 ID中時間01234567891011121314151617181920212223Total
書き込み数01000002101020100001001010



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
831
【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
★★Java質問・相談スレッド172★★ [転載禁止]©2ch.net

書き込みレス一覧

【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
825 :デフォルトの名無しさん[sage]:2015/02/22(日) 01:45:38.69 ID:vo1EKyKq
>>819
引数にどっちでも受け取れるメソッドを作ろうと思ったら明示的に型チェックするか無条件にto_sしなきゃいけない
前者がクソなのはさすがに>>819の腐った目にも明らかだと信じたいが、
後者はシンボルと文字列以外でも何でも通ってしまってバグの原因になる
★★Java質問・相談スレッド172★★ [転載禁止]©2ch.net
392 :デフォルトの名無しさん[sage]:2015/02/22(日) 07:44:41.79 ID:vo1EKyKq
>>390
誰も使ってないからだろ
目立たないからデモ作るだけなら必要ない
【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
831 :デフォルトの名無しさん[sage]:2015/02/22(日) 07:54:50.02 ID:vo1EKyKq
>>830
RubyはStringとSymbolを明確に区別するので { :x => 1 }[“x”] や { “x” => 1 }[:x] はnil(null相当)になる
JavaScriptを知ってる奴が必ず一回はやらかすのは { x: 1 }[“x”] だな
{ x: 1 } は { :x => 1 } と同じ意味だから、結果はnilになってしまう
【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
833 :831[sage]:2015/02/22(日) 08:19:14.17 ID:vo1EKyKq
ちなみに、インスタンスのメソッドを名前で取得する obj.method メソッドや
インスタンスフィールドを名前で取得するobj.instance_variable_methodメソッドなどはシンボルでもメソッドでもどっちでもいける
意味的にはシンボルしか受け付けないのが正しいはずだが、このダブスタがRuby
【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
836 :デフォルトの名無しさん[sage]:2015/02/22(日) 10:44:33.19 ID:vo1EKyKq
>>835
そうじゃなくて、無条件に全部to_sしたら全てのオブジェクトを受け入れてしまうでしょ
値の文字列表現としてto_sが適切に実装されてる型だけならそれでもいいけど、
デバッグ用に適当な実装になってるのも多いから予期せぬ動作の原因になる
【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
838 :デフォルトの名無しさん[sage]:2015/02/22(日) 12:05:56.76 ID:vo1EKyKq
かもしれないが、困ることはあり得るよね、という話をしてるんだよ
少なくとも、文字列が入るところにシンボルが来る可能性を常に考慮しなきゃいけないだけでも結構なストレスだよ
【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
842 :デフォルトの名無しさん[sage]:2015/02/22(日) 12:29:41.28 ID:vo1EKyKq
>>840
>>833に書いた通り、Rubyのコアな部分でも意図的に混同した扱いをしているケースは多いし
ライブラリでもそうなってるのは多いぞ
特に { key: value } が使えないのは痛いしな
【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
844 :デフォルトの名無しさん[sage]:2015/02/22(日) 14:19:20.41 ID:vo1EKyKq
俺が区別したいかどうかは別にして、区別したくない人が多いのは事実だからな
大抵のユーザーはシンボルを文字列リテラルの書き方のバリエーションくらいにしか考えていなくて
多くのライブラリはそれに合わせている
客観的に見れば設計ミスだと言わざるを得ないね
【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
851 :デフォルトの名無しさん[sage]:2015/02/22(日) 19:08:16.83 ID:vo1EKyKq
>>847
それStringじゃいけない理由もないだろ?
静的言語のEnumみたいに色ならColor列挙型の値でないとコンパイルエラーになれば意味はあるけど、
列挙型かそれ以外かなんて区別にはほとんど意味がないし、
その間違いですらも結局実行時にバグとして表れるまでは分からない。
Symbolは本来>>850の言う通りオブジェクトやハッシュのメンバ名として使うんだよ。
言語処理系作る人の感覚だとその方が文字列でメンバ検索するより綺麗だから。
【Python】スクリプト バトルロワイヤル47【pl,rb,php,js】 [転載禁止]©2ch.net
857 :デフォルトの名無しさん[sage]:2015/02/22(日) 22:17:06.17 ID:vo1EKyKq
安定して人並みの生活を送りたいならJava一択
Web系は技術だけじゃなくビジネスセンスが無いと悲惨な奴隷


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。