Ruby 初心者スレッド ..
396:デフォルトの名無しさん
08/09/01 10:46:23
全部common lispでできるよ
397:デフォルトの名無しさん
08/09/01 10:58:01
>>390
順番に意味はない。
398:デフォルトの名無しさん
08/09/01 11:11:56
>>394
ぜんぼ覚えるの大変だなw
C++は習得できなかったからないの?
JRubyがあるから、今のうちにJavaかな。
399:デフォルトの名無しさん
08/09/01 19:05:30
サーバーサイドC++ってごっつすぎだろ
400:デフォルトの名無しさん
08/09/01 20:47:46
>>390
結論からいうとPythonを覚ればそれでなんでも出来る。
軽くて速くてソースが美しいPython。文書も豊富でライブラリも充実してるPython。
仕様はかっちり、世界規模で開発されているPython(Google, MS, Yahoo!, etc.)
オープンソース系ならほぼもうPythonが事実上の標準言語になってる。
日本だけで閉じこもってて、遅くてソースが汚くて開発もいい加減なRubyとかやっても
無駄に終わる可能性があるよ
401:デフォルトの名無しさん
08/09/01 21:36:57
ソースが美しい・汚いとは、例えばどういうソースのことだ
402:デフォルトの名無しさん
08/09/01 21:39:56
読み難い、読み辛いって読み替えればいいんじゃね?
403:デフォルトの名無しさん
08/09/01 21:54:31
どうしても分からないことがあります。
hash = Hash.new([])
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_one.each do |a|
array_two.each do |b|
hash[b] << a
end
end
hash # => {}
でhashに値が入らないのは何故でしょうか?
{:a=>[1,2,3], :b=>[1,2,3], :c=>[1,2,3]}
となってほしいのですが。一方、下はOKです。
hash = Hash.new(0)
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_one.each do |a|
array_two.each do |b|
hash[b] += 1
end
end
hash # => {:a=>3, :b=>3, :c=>3}
404:デフォルトの名無しさん
08/09/01 21:57:34
あーしまった。変数書き間違った。訂正します。
hash = Hash.new([])
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_a.each do |a|
array_b.each do |b|
hash[b] << a
end
end
hash # => {}
hash = Hash.new(0)
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_a.each do |a|
array_b.each do |b|
hash[b] += 1
end
end
hash # => {:a=>3, :b=>3, :c=>3}
???
405:デフォルトの名無しさん
08/09/01 21:59:23
読みやすいかどうかなら、記号が多いよりもJavaやC#のように長いメソッド名のほうが読みやすいんじゃないの?
もう、パイソンと関係ないけおd
406:デフォルトの名無しさん
08/09/01 22:08:05
[:a, :b, :c]
は何か意味あるの?
407:デフォルトの名無しさん
08/09/01 22:10:44
>>406
ないです。単にシンボルの方がタイプ数が少ないという理由です。
408:デフォルトの名無しさん
08/09/01 22:13:16
>>404
カッコ付きのHash.newは、該当キーがなかったときにその引数オブジェクト
自体を返す。つまり、
x = []
hash = Hash.new(x)
each/each
if hash.has_key?(b)
hash[b] << a # ここには絶対来ない
else
x << a
end
end/end
みたいな感じ。
たぶんやりたいことは、ブロック付きのnewで
hash = Hash.new {|h, k| h[k] = [] }
じゃないかな。該当キーがなかったときに、
新しく空の配列を作って hash に代入する。
409:403
08/09/01 22:29:06
> たぶんやりたいことは、ブロック付きのnewで
> hash = Hash.new {|h, k| h[k] = [] }
> じゃないかな。該当キーがなかったときに、
> 新しく空の配列を作って hash に代入する。
その通りなんですが、
x = Hash.new([])
x[:a] << 1
x[:b] << 2
x # => [1, 2]
これは大丈夫なのに、何でだろうと思って。
410:404
08/09/01 22:32:02
あーすみません。また書き間違った上に、なんか根本的に誤解してる>自分
出直してきます。
411:デフォルトの名無しさん
08/09/01 22:41:51
>>407
タイプ数が少ないって何のこと?
412:デフォルトの名無しさん
08/09/01 22:42:16
x = Hash.new([]) # だいたい x = Hash.new; x.default = [] に同義
>> x[:a] << 1
=> [1]
>> x
=> {}
>> x[:b] << 2
=> [1, 2]
>> x
=> {}
>> x.default
=> [1, 2]
413:403
08/09/01 22:50:04
ほんといろいろすみません。
>411
文字列じゃなくシンボルを使った理由を聞かれているものと勘違いしました。
>412
なるほどやっと分かりました。
というか、探したらちゃんと書いてあった・・・orz
URLリンク(www.ruby-lang.org)
414:デフォルトの名無しさん
08/09/01 23:22:22
>>413
rubyのhtml help入れれ
415:デフォルトの名無しさん
08/09/02 03:07:58
パイトンはやったことないからわからんなぁ。
416:デフォルトの名無しさん
08/09/02 17:09:52
Loggerでログファイルを毎日Rotateさせようと思ったんだけど
>> require "logger"
=> true
>> log = Logger.new("foo.log", 'dairy')
=> #<Logger:0x33fe50 ...以下略>
>> log.info "foo"
=> true
>> log.info "foo"
Logger::ShiftingError: Shifting failed. 'foo.log.20080902' already exists.
>> log.info "foo"
Logger::ShiftingError: Shifting failed. 'foo.log.20080902' already exists.
ログを出力しようとするたびに ShiftingError が出るんだけどこれって何の冗談?
うちの環境は↓
$ ruby -v
ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]
417:デフォルトの名無しさん
08/09/02 17:11:21
infoってメソッド名がおかしいんだよ
writeに改名しろ
418:416
08/09/02 17:17:46
logger.rbを見たら 'dairy' じゃなくて 'daily' だった.あー恥ずかしい.
しかし引数間違っててもスルーって不親切だよなあ
419:デフォルトの名無しさん
08/09/02 17:21:31
ruby厨きめえwwwwww
これからはpythonの時代だろks
うぇwっうぇwwwww
420:デフォルトの名無しさん
08/09/02 17:33:45
Rubyだけ使ってるとでも思ってるのかね
421:デフォルトの名無しさん
08/09/02 17:34:42
煽っているようでちゃんとsageているところに
育ちの良さがにじみ出てしまっているな
422:デフォルトの名無しさん
08/09/02 17:37:31
>>420
そうじゃないと都合悪すぎるだろ
やろうと思えば複数言語の比較検討ができるとか断じてあってはならない
423:デフォルトの名無しさん
08/09/02 17:41:19
釣れますか?
424:デフォルトの名無しさん
08/09/02 17:47:22
結局rubyなんてwebProgでしかないし、pythonのほうが将来がある
425:デフォルトの名無しさん
08/09/02 18:27:19
ルビみたいにメインストリームの横に張り付いているちっぽけな貧乳は今後成長する可能性も2.3%くらいあるが、
醜く大きくなったおっぱいそんは後は垂れるだけ。
426:デフォルトの名無しさん
08/09/02 18:43:07
だっておwwwwww
427:デフォルトの名無しさん
08/09/02 18:57:20
どうでもいいけど最近貧乳の良さが分かってきた
428:デフォルトの名無しさん
08/09/02 20:16:15
俺は最初から貧乳が好き
429:デフォルトの名無しさん
08/09/02 20:36:26
もともと巨乳好きだが最近貧乳にも興味あり
430:デフォルトの名無しさん
08/09/02 21:07:59
何つうか、適材適所を知らない奴はPythonあたりでもダメなんだろうな。
431:デフォルトの名無しさん
08/09/02 21:13:21
Pythonの威を借るDQN
432:デフォルトの名無しさん
08/09/02 21:31:36
虎ってか蛇か
433:デフォルトの名無しさん
08/09/02 22:32:23
恋するプログラムを読み始めたんだけど、2−2最初のサンプルからつまづいた・・・
「ワンツー」と日本語が入力できないんですが、どうしたらいいですか?
半角英数しか使えないよ
434:デフォルトの名無しさん
08/09/02 22:35:35
コマンドプロンプトならAltを押しながら、半/全キーだったかな
435:デフォルトの名無しさん
08/09/02 23:04:50
企業や学校の場合はconime対策でそもそも日本語入力機能が無効にされてることも稀にあるので注意だ
ちなみにタイトルバーを右クリックすると編集用のショートカットキーコンボがわかるので利用するといい
436:デフォルトの名無しさん
08/09/03 00:17:02
下手に最初から日本語使って予期せぬエラー増やすよりも
慣れるまでは全部半角英数でやるのが無難
437:デフォルトの名無しさん
08/09/03 00:17:24
>434
ありがとう。解決しました。
>435
よくわからない。
範囲指定(K)ってあるけどシフト、ctrl、altと組み合わせても発動しないし
というかセーブする方法がまだ出てきてなくてこの先生きのこれるか心配です
438:デフォルトの名無しさん
08/09/03 00:20:43
俺たちの先生は、キノコだったのか!!
439:デフォルトの名無しさん
08/09/03 01:09:46
>>437
えーとだな、コマンドプロンプト(DOSプロンプト)は、Alt+スペース で右クリックメニューの1階層目が開く
で、Eを(単独で)押すと編集メニューがさらに開いて、貼り付けとかが選べる
たとえば、クリップボードにあるURLを貼り付けたい場合は「Alt+スペース、E、P」の順にリズミカルに押せばいい
で、範囲選択だが、これは「Shift+方向キー」でコピー元の範囲選択を矩形で開始できる機能だ
コピーしたい部分を選択し終わったらEnterを押すと、それまでの反転部分が改行つきでクリップボードに入る
ぶっちゃけ使用頻度は高くないし、マウスで範囲を選んでEnterすれば同じことなのでありがたみも薄い
440:デフォルトの名無しさん
08/09/03 01:21:06
rubyのCPANはどこにあるの?
441:デフォルトの名無しさん
08/09/03 01:27:58
CPANはPerlの(以下略
Rubyforgeをgemコマンドで利用するのがデファクトスタンダード
CPANほどには洗練されていないし、CPANほどには無闇大量に登録されてない(そもそも少ないというかPerlが異常)
Windows版Rubyなら、最初からgemコマンドが使えたはず
LinuxとかBSDとかの場合はrubygemsのような名前のパッケージがあると思われ
442:デフォルトの名無しさん
08/09/03 01:31:52
サイトとしては存在してないってこと?
ブラウザでみれるようなの。
443:デフォルトの名無しさん
08/09/03 01:32:39
ああサイトはあるけど
利用の形態はgemコマンドということね。
444:デフォルトの名無しさん
08/09/03 01:33:57
>>442
URLリンク(rubyforge.org)
# rubyforgeでぐぐれ、と書こうとしたが、ぐぐったらトップが出てこなかった。
445:デフォルトの名無しさん
08/09/03 09:10:12
拡張ライブラリを作ろうと思ったんだけど
解説してるサイトに書いてある「$ make」の意味が分かりません。
446:デフォルトの名無しさん
08/09/03 09:16:33
>>437
xyzzyでshell起動すると、エディタ画面でコマンドプロンプトが使えるよ。
Alt+x → 'shell' と打ってリターン
447:デフォルトの名無しさん
08/09/03 10:15:09
>>445
makeコマンドを実行しろってこと。
448:デフォルトの名無しさん
08/09/03 11:06:53
まあCとRubyでのプログラミングはできるわけだし、それくらいの推測はできて欲しいよな
make は UNIX コマンドだ(語弊あり)
UNIXやらLinuxやらにはたいてい入ってるが、Windowsには普通入ってない
make だけをどっかからインストールするといいが、
プロンプトが $ であるところから見て、そのサイトはWindows考慮してないんじゃないかとも思う
449:デフォルトの名無しさん
08/09/03 11:20:50
まぁ、要するに仮想マシンかなんかにLinux(語弊あり)を入れた方がいいってこった
450:デフォルトの名無しさん
08/09/03 11:22:39
Linux以外でRuby使う奴って馬鹿だろ?
451:デフォルトの名無しさん
08/09/03 11:27:27
ううん そうでもないよ
452:デフォルトの名無しさん
08/09/03 13:28:27
FreeBSDで使ってますが何か?
453:デフォルトの名無しさん
08/09/03 13:54:40
BSDは基本でしょwww
454:デフォルトの名無しさん
08/09/03 14:08:53
>>453
kwsk
455:デフォルトの名無しさん
08/09/03 14:12:44
いや、今はMacOSバージョンXでしょ。
実質的にBSDの商用GUIバージョンのヂストリブーションだしwww
MacOSXはINTELもあったんじゃなかったか?
456:デフォルトの名無しさん
08/09/03 14:17:51
つまんねえ
457:デフォルトの名無しさん
08/09/03 14:18:01
本物のハッカーはソラリスじゃないの?x86あるし無料だし。
FreeBSDの設定とかよりソラリスをHPで紹介してるのとか凄くない?
458:デフォルトの名無しさん
08/09/03 14:30:33
ブリヂストン?
459:デフォルトの名無しさん
08/09/03 14:30:35
>>456
変なの居ついたよな
当人はスレに参加しているつもりなのだろう
460:デフォルトの名無しさん
08/09/03 14:58:43
そうやって排他的だとperlみたいにコミュニティーが宗教っぽくになっていくと思わないか?
461:デフォルトの名無しさん
08/09/03 15:01:31
rubyはもともとモルモン教なんだが?
あの貧困層の宗教で有名なモルモン教だからrubyの洗脳はperlよりもひどいよ
462:デフォルトの名無しさん
08/09/03 15:02:44
実際のところ、モルモンも創価学会とドッコイだろww
463:デフォルトの名無しさん
08/09/03 15:11:24
perlと比べれば、rubyは後発だけあって現状の要求をみたしている言語としての出来はいいんだけどな。
464:デフォルトの名無しさん
08/09/03 15:21:48
>>460
どっちかってえと公平に受け入れよとわめくほうが宗教っぽい
465:デフォルトの名無しさん
08/09/03 15:35:52
惑星ソラリスは破壊されたんじゃ?
466:デフォルトの名無しさん
08/09/03 17:56:58
おメーラいい加減にせえよ
スレ違いにもほどがあるw
467:デフォルトの名無しさん
08/09/03 20:40:34
すいまメ〜ン!
468:デフォルトの名無しさん
08/09/03 21:18:20
SonOS 4.1あたりまでの人にとってはSolarisはまがい物なんじゃなかろうか。
469:デフォルトの名無しさん
08/09/03 21:40:09
>>900までこのスレはOSの話!
Rubyは別でどうぞ(違
470:デフォルトの名無しさん
08/09/03 22:57:18
rubyでExcelを読み込みたいのですが、日本語が化けてしまいます
かなり調べてみたんですが、何が悪いのかわからないです。。不適切な箇所を指摘してもらえないでしょうか
require 'win32ole'
class Excel_test2
def getExcel
xl = WIN32OLE.new('Excel.Application')
book = xl.Workbooks.Open(ファイルの絶対パス)
begin
book.Worksheets.each do |sheet|
sheet.UsedRange.Rows.each do |row|
record = []
row.Columns.each do |cell|
record << cell.Value
end
puts record.join(",")
end
end
ensure
book.Close
xl.Quit
end
end
Excel_test2.new().getExcel
End
Rubyのバージョンは1.8.6
WIN32OLEのバージョンは0.7.2と出てました
471:デフォルトの名無しさん
08/09/03 23:10:11
日本語が化けるだけならwin32oleはたぶん関係ないな
472:デフォルトの名無しさん
08/09/03 23:18:31
「Excelを読み込む」という表現に危機感を感じる
ダブルクリックするとExcelが起動するからExcelだと思ってる人が日本中に10万人くらいいるがその類かもしれん
csvファイルやtsvファイルも読めるわけで、端末文字エンコードとあってないファイルの場合は当然化けるぞ
473:デフォルトの名無しさん
08/09/03 23:29:19
どんな日本語がどう化けたか書きなさいって
474:デフォルトの名無しさん
08/09/03 23:43:56
>>473
発生日 名称 マグニチュード 死者・不明者 死者の有無
↓
, , } O j ` [ h, ҁE s , ҂̗L
こういう感じです
475:デフォルトの名無しさん
08/09/03 23:51:50
そうして>>471-472を無視する
476:デフォルトの名無しさん
08/09/03 23:54:21
単に文字エンコードやExcelが扱うファイルの知識がないんだろう
Ruby以前の問題だな
win23oleはRubyほとんど関係なくて、Windowsプログラミングの知識が大量に要るぞ
477:デフォルトの名無しさん
08/09/03 23:59:14
なんにも知らないくせにw
478:デフォルトの名無しさん
08/09/04 00:03:00
煽ったってこれ以上は別に出ないぞ
479:デフォルトの名無しさん
08/09/04 00:04:04
WIN32OLE.codepageを変えてみるとか
480:デフォルトの名無しさん
08/09/04 00:10:51
読めてる以上、文字コードだけの問題だしなあ
まさか本当にUTF-8のCSVファイルだとかそんなオチだったり
481:デフォルトの名無しさん
08/09/04 00:11:18
FreeBSD使ってる人は、やっぱりSunOSも知ってる人なんじゃないの?
その流れでソラリスに辿り着くか、派手好きはMacOSXかなってことなんだけど。
デビアンはイマイチゴチャゴチャだし、オープンで英語得意なら、やっぱFreeBSDのままかなw
そういえば、物理学科のハッカー先生元気かな…
482:デフォルトの名無しさん
08/09/04 00:15:58
MacやLinuxは女々しい奴か宗教家ぶれの奴しかいないけど、BSDは本物のハッカーしかいない。
別板にある犬小屋スレ見ればわかるだろw
windoはエサ待ち状態のサルばかりか?
483:デフォルトの名無しさん
08/09/04 00:18:41
とりあえず Excel 2007 で直接日本語を入力して xls および xlsx 両方で保存した上で
>>470 をコマンドプロンプトからそれぞれ実行したが、特に文字化けはしなかった。
cell.Value から返るのは Shift_JIS だから、あとは表示環境の問題かと。
484:デフォルトの名無しさん
08/09/04 00:20:46
>>479
WIN32OLE.codepageをUTF-8にしてみたら正常に出力されました
ありがとうございます
文字コードが正直さっぱりわかってないのでもっと勉強します。。
485:デフォルトの名無しさん
08/09/04 00:24:46
スクリプトがUTF-8なのかね
486:デフォルトの名無しさん
08/09/04 00:30:54
おお、勘でアドバイスしたら当たったぜ
487:デフォルトの名無しさん
08/09/04 01:29:06
エスパー覚醒おめ
488:デフォルトの名無しさん
08/09/04 08:26:31
>>481
BSDが染みついた人ならソラリス(2以降)にたどり着いたらUターンするだろJK
489:デフォルトの名無しさん
08/09/04 09:09:46
今の時代x86で十分だし、そうするとwinかbsd/linuxでしょ。
3Dの凄い計算とか気象予測みたいなのが必要なわけでもないし。
ただ、PCを部屋に5台以上おくとクーラーとか空調もやんないといけなくなるし、PC技能とは別問題に遭遇する。
490:デフォルトの名無しさん
08/09/04 09:14:26
じじいは隔離スレにカエレ
491:デフォルトの名無しさん
08/09/04 09:55:38
>>490
当人はスレに参加しているつもりなのだろう
492:デフォルトの名無しさん
08/09/04 10:06:20
rubyはモルモンじゃなくて、エホバじゃなかったか?
あの、デザインパターン本のキリスト教の人と同じで。
493:デフォルトの名無しさん
08/09/04 10:07:57
モルモンです。
494:デフォルトの名無しさん
08/09/04 10:26:08
結城さんはモルモンなの?
495:デフォルトの名無しさん
08/09/04 10:26:38
プロテスタントのクリスチャンというのが怪しいよな
日本でカトリック以外なんてエホバか統一教会だし
496:デフォルトの名無しさん
08/09/04 12:21:27
rubyは型の宣言は不要なんですけど、実際はメソッド呼び出した後、何の型が戻るのか分からないと
次の操作が出来ないので、なんだかやりにくくないですか?
特に正規表現で引数とか戻り値がいろいろあるので、結局はOOだと型の明示が必要なのかなと思っちゃいます。エラーでも型の注意が入るし。
とにかく =~ とか $~ の旧世代のレガシーはもうOOじゃないし、廃止して欲しい。
497:デフォルトの名無しさん
08/09/04 12:22:13
と思いませんか?
498:デフォルトの名無しさん
08/09/04 12:24:23
javaでも使ってろよ
499:デフォルトの名無しさん
08/09/04 12:29:09
配列に正規表現がマッチするわけないし
数値に正規表現がマッチするのは変だろ
result = str.scan(re) でいちいち配列の配列が返ってくるのはなんか違わね? というのは確かに連綿と指摘はあるが
まあそれなら re.match(str) で MatchData オブジェクト使えばいいんじゃねという話ではある
500:デフォルトの名無しさん
08/09/04 12:37:48
その辺りはマニュアルにしつこく書いとくと、日本人ならrubyに流れるんじゃないですか?
=~ [] MatchData String Regexp とかどれなのか覚えて整理するのに1日使ったんで。
perlよりはまとまってるみたいですけど、perl awkのしがらみでもあるんでしょうかw
触ってみた感想は、Javaみたく、MatchDataでまとめていいんじゃないかな。
501:デフォルトの名無しさん
08/09/04 12:39:24
というか、連綿とかムズカシイ言葉知ってますねww
502:デフォルトの名無しさん
08/09/04 12:54:31
開発者たちは、数学知ってるんだろうし、多価返却はダメだってことを分かってると思うんですけど。
既存の=~ $~ とか、class Regexpはそのままで、新規にruby regexpと称して戻りは全て1つのクラスで返るようにrubyのAPIとして新しくクラスとメソッド名を設計すればいいんじゃないですか?
あれこれクラスにまたがっていて、まったく意味不明でした。
$~はスレッド・ローカルみたいですけど、OO的というかスレッド的に馴染まないというかどうかと…
503:デフォルトの名無しさん
08/09/04 13:03:28
>>502
お前実際にはスクリプト書いてないだろ
504:498
08/09/04 13:05:00
>>502
っ【ソースコード】
っ【直談判】
っ【>>499】
なんかスレのターゲットから超えてる気がするw
505:デフォルトの名無しさん
08/09/04 13:09:34
>>503,504
いや、別に初心者じゃないんでw
506:デフォルトの名無しさん
08/09/04 13:14:11
以上、壮大な釣りでした。
507:デフォルトの名無しさん
08/09/04 13:20:42
あと意味不明だったのは、
p => Object.inspect
puts => to_a => to_s
print / printf => to_s
だったかな。コレもよくオーバーライドしたり参照するんで、マニュアルによろしくですです。
ほとんど
for line in file : p line end
while line=file.gets : p line.chomp!.strip! end
しか使ってませんよ。結局やってることはOOじゃないし、eachとかいちいちAPIみるの面倒でしょw
508:デフォルトの名無しさん
08/09/04 13:34:36
リテラルも多いし、返却値もいくつものクラスにまたがっていて、さらにデバグの出力先もいろいろあって、忙しい言語ですね。
これでも十分複雑なんで、半年も触らないときっと忘れちゃいますよ。
javascriptの方はプロトタイプ言語で少し概念が違うんですけど、ほぼジャバと同じだし半年しても忘れることはないでしょうな。
OOとかクラスについてはjava使えるんで、regexpは、jsでIO使えるならjsでいいかなってのが感想ですw
509:デフォルトの名無しさん
08/09/04 13:56:38
じゃあJavaScriptスレに行ってください。
このスレは2度と見る必要ないですよね?
510:デフォルトの名無しさん
08/09/04 14:20:33
本屋で見かけた初めてのRubyが第3刷だった件について
511:デフォルトの名無しさん
08/09/04 15:00:02
よい本が売れるのは問題ない
店によっては入った週に売り切れたりするのは立ち読みしにくいのでやめてほしい
512:デフォルトの名無しさん
08/09/04 19:22:54
>>500
>=~[]MatchDataStringRegexpとかどれなのか覚えて整理するのに1日使ったんで。
StringとRegexpをマッチさせたらMatchDataが作成される、というだけで、
何も難しくないと思うんだけど、どのへんがわかりにくかったですか?
>触ってみた感想は、Javaみたく、MatchDataでまとめていいんじゃないかな。
Javaもjava.lang.Stringとjava.util.regex.Patternとjava.util.regex.Matcherを使っているから同じだと思うんですけど、どこが違うと思いますか?
>>502
>既存の=~$~とか、classRegexpはそのままで、新規にrubyregexpと称して戻りは全て1つのクラスで返るようにrubyのAPIとして新しくクラスとメソッド名を設計すればいいんじゃないですか?
これは意味がよくわからないんですけど、どういうクラスとAPIを提案しているのか、もっと詳しく説明してみてください。
もしかしたら、すごくいいクラス設計が提案されているかもしれないので。
よろしくお願いします。
513:デフォルトの名無しさん
08/09/04 19:28:04
>>507
>あと意味不明だったのは、
>p=>Object.inspect
>puts=>to_a=>to_s
>print/printf=>to_s
>
>だったかな。コレもよくオーバーライドしたり参照するんで、マニュアルによろしくですです。
この書き込みのほうが意味不明。どれもマニュアルにそのまんま書いてあるんだけど、マニュアルをどうして欲しいの?
514:デフォルトの名無しさん
08/09/05 01:20:25
pack/unpack の指定も記号的で意味不明なんで、一文字で略さないで、ちゃんと定数やエナムにして
意味を含めてくれませんか?パブリックなライブラリなわけで、自分仕様のライブラリじゃないでしょw
パールのしがらみをもったままなんでしょうけど、このままだと第2のパールに成り下がるだけじゃないですかね。
regexpは別言語でもできるんですけど、ネイティブへのアクセスは、POSIXの機能が結構使えるルビーが(グルーとしては)一番かなって思うんですけど、この辺りどうでしょうか?
515:デフォルトの名無しさん
08/09/05 01:22:10
それと、クラスの設計はやっつけ仕事じゃなくて、普通は後から変更できないんで、数年かけてちゃんと設計してもらって、パールの猿真似ばかりやってないで、仕様をまとめてもらった方がいいですよ。
ルビーには特異クラスって業もあるんですけど、初めのライブラリを新規に用意するのは、そういうプロトタイプ的な機能に頼って期待する以前の問題じゃないかなと思います。
516:デフォルトの名無しさん
08/09/05 01:22:11
>>514
お前実際にはスクリプト書いてないだろ
マニュアル逐次読みしながら論う釣りは帰れ
517:デフォルトの名無しさん
08/09/05 01:31:15
自 分 で 作 れ
518:デフォルトの名無しさん
08/09/05 01:48:04
>>516-517
コードを書こうとして、packの機能を使おうとしたら「複雑すぎw」てことじゃないの?まあ、サルにはこの気持ちは一生理解できないんだろうけどw
519:デフォルトの名無しさん
08/09/05 01:53:41
pack/unpack は機能が豊富だから独立したクラスにして欲しい。1.9のfutureで頼んます。
520:デフォルトの名無しさん
08/09/05 01:58:07
packはあれはUNIXそのままが一番わかりやすいしなあ
正規表現が全くオブジェクト指向じゃないとか
sprintfやstrftimeのフォーマット文字列が意味不明だと文句言われるのと
割と似ていると思う
521:デフォルトの名無しさん
08/09/05 01:58:09
>Ruby 1.9.1の仕様は9月25日で凍結されます
急げ
522:デフォルトの名無しさん
08/09/05 02:10:16
急いでないんで、1.9.8まで待ちますw
printfはインタプリタなんで、packの引数による機能指定と、全然関係ないと思うんですけど?
APIも仕様も熟読しないような、ナンチャッテさんはその程度ですかw
523:デフォルトの名無しさん
08/09/05 02:16:40
>>520
るびまで青木さんが、
packの書式なんて誰も覚えてねーよバーカバーカとか書いた上で
自前で簡単なDSLを定義してたようなw
524:デフォルトの名無しさん
08/09/05 02:24:10
なんか、rubyが旧世代のダメ出しされてるってかんじーww
525:デフォルトの名無しさん
08/09/05 02:41:14
>printfはインタプリタ
詳しく説明願います
526:デフォルトの名無しさん
08/09/05 02:45:10
あなたが勉強不足なだけなんでしょうな。
527:デフォルトの名無しさん
08/09/05 02:55:19
初心者スレで粋がるのがかわいいじゃないか
528:デフォルトの名無しさん
08/09/05 02:58:22
仕様に対する不満はスレ違いだ。本スレかアンチスレにでも行け。
つーか、メーリングリストで言えよ…
529:デフォルトの名無しさん
08/09/05 02:59:55
メーリングは、「あーでも、こーでも」いってて皆でモルモンしてるじゃんw
530:デフォルトの名無しさん
08/09/05 03:03:46
API君の日本語が意味わからなくて、対応に困ります
531:デフォルトの名無しさん
08/09/05 03:05:22
本スレってあそこか。
業界通っぽくしてるサルばかりじゃないの?
所詮下請けにかわりないし、愚痴ってるだけで、BSDじゃないけどサル小屋かなww
532:デフォルトの名無しさん
08/09/05 03:06:15
日本語でおk
533:デフォルトの名無しさん
08/09/05 03:10:37
>>529-532
はいはい。IPAが男女共同参画会議に出席するようですよ。
534:デフォルトの名無しさん
08/09/05 03:12:38
ボクちゃんは賢いですねー
おりこうさんだからv8でもいじって、遊んでましょーね
535:デフォルトの名無しさん
08/09/05 03:15:12
>>527
そうやって羨ましがってばかりいないで、少しはプログラミング言語 Ruby に貢献したらどうよ?
どうせおまえみたいな無能は、指くわえてみてるだけじゃないの??
536:デフォルトの名無しさん
08/09/05 03:18:12
IPAは税金ばっかり使って、結局フォントだけが成果物じゃん。もう国がサポートすることもないし、解散でいいよ
537:デフォルトの名無しさん
08/09/05 03:19:21
誰が何の話してるかわけわからんぞ
538:デフォルトの名無しさん
08/09/05 03:20:12
はいはい。ここは初心者スレなんで、愚痴は「サル小屋」でやってくださいましww
539:デフォルトの名無しさん
08/09/05 03:43:25
あのー、IPAでいいんで、漢字コンソール(KONのクローン)作ってもらえまんせか?
konが今となっては機能不足なので、freebsd入れずにwindows使う羽目になってるんですが。
英語には不自由はしてないんですけど、クライアントの送信とかログとかも含めて開いたファイルの中身が文字化けしたら何のファイルなのかさっぱりなんで、漢字端末よろしくです。
540:デフォルトの名無しさん
08/09/05 04:38:04
ジャバとかルビーとかパールとかカタカナ表記が流行ってるんですか
541:デフォルトの名無しさん
08/09/05 04:43:48
>>539
使ったことないけどjfbtermとか
542:デフォルトの名無しさん
08/09/05 12:09:44
jfbtermはポーツにあるみたい
543:デフォルトの名無しさん
08/09/05 12:19:21
konって何年前だよ。ほんと生きた化石みたいなやつだな。
544:デフォルトの名無しさん
08/09/05 12:21:30
konの表示は当時からしょぼかった・・・やっぱ資本の差かな・・・フォントの次はIPAさん、俺からも頼のんます
545:デフォルトの名無しさん
08/09/05 18:11:37
おっさんは引き際というものを知らんな
546:デフォルトの名無しさん
08/09/05 19:58:37
カタカナ表記で書いてる奴は基本的に釣りでしょ。
547:デフォルトの名無しさん
08/09/05 22:35:11
ルビー
548:デフォルトの名無しさん
08/09/06 00:30:31
>>514
>pack/unpackの指定も記号的で意味不明なんで、一文字で略さないで、ちゃんと定数やエナムにして
>意味を含めてくれませんか?
これは無理です。printf()の書式とおなじようなものだと考えてください。
あなたがprintf()の書式にも文句言う人だとどうしようもないですが。。。
>>515
>それと、クラスの設計はやっつけ仕事じゃなくて、普通は後から変更できないんで、数年かけてちゃんと設計してもらって、パールの猿真似ばかりやってないで、仕様をまとめてもらった方がいいですよ。
どうも正規表現あたりのクラス設計に不満があるようですが、どういう設計をお望みでしょうか。
String, Regexp, MatchData の3つがあるのは Javaでも同じですが、どこがわかりにくいですか?またどう変更してほしいのですか?
>ルビーには特異クラスって業もあるんですけど、初めのライブラリを新規に用意するのは、そういうプロトタイプ的な機能に頼って期待する以前の問題じゃないかなと思います。
言っていることが意味不明なので、わかりやすく書き直してください。
549:デフォルトの名無しさん
08/09/06 04:01:49
なんだこいつ?新手の荒らしか?
550:デフォルトの名無しさん
08/09/06 04:29:03
require/includeでクラスやモジュールを使いたいのですが、
ruby "-I c:\myruby\mylib" source.rb
とやってソース内部でrequire/includeとやってもロードされてないようです。
何が足りないんでしょうか?
551:デフォルトの名無しさん
08/09/06 04:51:35
>>548
おまえが無能だって事はよく分かった。
552:デフォルトの名無しさん
08/09/06 05:03:00
頭が良いが性格は悪い、というキャラを目指す奴の大半は
どっちも悪いキャラに終わるよな。
553:デフォルトの名無しさん
08/09/06 05:25:14
>>552
どれとどれが「どっちも」ってのなんだ?
これだけで、おまえが低学歴なのがよーく分かるw
554:デフォルトの名無しさん
08/09/06 05:45:12
目の前の文章の意味すらわからないのに、
目に見えない色んなことは次々と「わかっちゃう」のも
特徴の一つだね。
555:デフォルトの名無しさん
08/09/06 06:41:29
低学歴は夜間の大学を受験したらどうだ?学歴でバカにされるの嫌だろw
556:デフォルトの名無しさん
08/09/06 08:27:04
ロジックとかは経験でカバーできます。
557:デフォルトの名無しさん
08/09/06 08:34:40
>>552 カンベとかルビキチとか。
558:デフォルトの名無しさん
08/09/06 08:57:57
>>556
そうすると、経験でカバーできないのはなんでしょうか?
559:デフォルトの名無しさん
08/09/06 10:44:41
>>550
サーチパスにC:¥myrubyを追加して、そこからmylibをrequireするなら、
ruby -I C:¥myruby -r mylib source.rb
560:デフォルトの名無しさん
08/09/06 11:04:42
>>550
バックスラッシュは直後の文字をエスケープするから、
"c:\myruby\mylib" は c : \m y r u b y \m y l i b と解釈される
ruby -I "c:/myruby/mylib" source.rb
または
ruby -I "c:\\myruby\\mylib" source.rb
で動作するはずだ
スクリプト開始時の require 前に $LOAD_PATH 配列に "c:/myruby/mylib" という文字列を要素として追加してもよい
なるべく配列の先頭に入れるといいと思う
561:デフォルトの名無しさん
08/09/06 11:22:07
ご親切にありがとうございます。
$: . push ("c:/myruby") ;
としてるんですけど、ソース1行目に、
#! ruby -I "c:/myruby"
だと無理みたいです。
それと、ruby -help でみると、-Idirectory -rlib -Kcode とかなっていて、空白いるのかいらないのか不明だし、なんかヘルプの方が混乱しているみたいです。
公式レファレンスの説明も1行あるかないかだし、やる気なくなりました。
BSDのインストールと日本語化が困難でやる気なくなって、vine linuxで済ますアレと同じ感覚ですw
あと、module Mymo とinclude/require関数とかも日本語だと説明不足で英語サイトだと著者の思想も込みで説明が詳しすぎて、結局モルモン思想はウザくてやる気が起きません。
rubyのコミュニティーは、rubyプラットフォームをツールとして広める気があるんのか疑っちゃいますw
562:デフォルトの名無しさん
08/09/06 11:27:24
関数とカッコの前後に空白どうとか言う警告を削除してもらえませんか?
obj . push ( a , b )
じゃ言語としてダメでありサポートしないのか、それともいいのかハッキリしてもらえませんかねー
こんなところまでモルモン思想の押し付けをワーニングするのはもう止めませんか?ウザいんですけどw
563:デフォルトの名無しさん
08/09/06 11:34:32
>>561
スクリプト1行目のShebang行は規則に則った単なる文字列だ
シェルで実行されるわけではない
シェルと同じ動作をすることを期待されても困る
564:デフォルトの名無しさん
08/09/06 11:57:30
お前らが優しいのは十分わかったから、いい加減かまってちゃんの相手をするのはやめてくれ
565:デフォルトの名無しさん
08/09/06 12:02:05
ライブラリの設計が悪いんだろw
566:デフォルトの名無しさん
08/09/06 13:12:43
ここんとこ毎日初心者スレにくるところをみると、どこでも相手にされてないようだな。
567:デフォルトの名無しさん
08/09/06 13:15:47
というよりも、戻り値の型で
p nil==false # false
は勘弁して欲しいけど。
このスレのレベルだと、どうしてなのか分からないんだろうと思う。
568:デフォルトの名無しさん
08/09/06 13:17:36
ルビーは犯罪者も使ってるんですよ!刑務所の犯罪者たちにエサを上げないで下さい!!
569:デフォルトの名無しさん
08/09/06 13:22:22
本スレのITドカタたちよりは技術的な質問が多いな。あのスレはカスばっかりでもうダメだろ…
570:デフォルトの名無しさん
08/09/06 13:25:40
たしか…
571:デフォルトの名無しさん
08/09/06 13:40:21
>>566
おまえもスレに張り付いて、いったい何やってんだ?仕事もしてないんだろw
572:デフォルトの名無しさん
08/09/06 13:46:21
それが罵り言葉になる環境にいるなんて可哀想
573:デフォルトの名無しさん
08/09/06 13:46:56
土方は蔑称だから使っちゃダメだよ。
574:デフォルトの名無しさん
08/09/06 13:47:30
571は今日が土日だということを理解できていないらしい
575:デフォルトの名無しさん
08/09/06 13:47:49
宇宙大王の言い分
このスレ: 低学歴・無能の集まりなので分かってくれない
ML: モルモンなので分かってくれない
リアル: 大人は分かってくれない
アドバイス
あなたを分かってあげられるのはあなただけ。自分を大切にしてあげて。
576:デフォルトの名無しさん
08/09/06 13:52:49
はいはい。もう分かったから死ね
577:デフォルトの名無しさん
08/09/06 13:56:57
rubyを使うようなのはwebクーチャーとか言う職業の人たち、つまりITドカタでしょwwww
たーまにbsdとかも使ってるシステムの奥の方の人も居るけどwwwww
2chでIPAの愚痴を言うようじゃ、仕事も大したことやってないし、せいぜい雑用係のカス野郎ってことが良く分かるwwwwwwwwカスw
578:デフォルトの名無しさん
08/09/06 13:58:32
いや、IPAは無駄だろ。除法処理技術者の資格をもっていても、もっていなくても、別に金にならないし。
579:デフォルトの名無しさん
08/09/06 14:14:12
WEB開発とか雑魚だろ。しかも文系でどこにも就職出来なかったような雑魚だしな。
べつにrubyのCソースを追いかけてるわけでもないし、なんか生意気な奴が多いようだけど、雑魚だろw
いちど、みっちりCをやって、GCのソースとか見てみたらどうよ?雑魚ちゃんww
580:デフォルトの名無しさん
08/09/06 14:16:05
そんな雑魚相手に弱いものいじめしなくても…彼らは雑魚なりに一所懸命生きてるんだからさ……
581:デフォルトの名無しさん
08/09/06 14:19:16
>>340
いやいや、デンターシステマ超極細毛(かため)以外認めんぞw
582:デフォルトの名無しさん
08/09/06 14:23:01
僕だってれっきとしたWEBクリエーターだ!クリーチャーじゃないぞ!!
583:デフォルトの名無しさん
08/09/06 14:26:09
弱いものいじめ反対!
いつか必ず天罰が下るぞ!!
584:デフォルトの名無しさん
08/09/06 14:37:10
>除法処理技術者
煽りじゃなく「割り算のプロ」っぽくていいな。それ。
585:デフォルトの名無しさん
08/09/06 14:41:13
>>581
君、いつもつまんない
586:デフォルトの名無しさん
08/09/06 18:10:54
s="あい"#sjis
puts s.dump
dump以外に、
”あい”を文字コードの列(配列)にするのと、
その配列から”あい”(SJIS)に戻す方法はどうやるのでしょうか。
587:デフォルトの名無しさん
08/09/06 18:45:25
dumpのどのへんが不満? バックスラッシュが邪魔?
配列にならないところ? 数値が8ビット整数じゃないところ?
588:デフォルトの名無しさん
08/09/06 19:12:45
RUBY_VERSION >= "1.8.7" だったら
[*str.each_byte]
とかかな
589:デフォルトの名無しさん
08/09/06 20:02:53
あのーバイト列(特にバイト配列)からStringにするにはどうするんでしょうか?
packとかは無しですよw
590:デフォルトの名無しさん
08/09/06 20:04:01
dumpは、戻り値がStringなんでArrayじゃないし、たぶん外部用(serialization)じゃないですか?
なので、関数内部のローカルで処理する用途とは少し違います。
とくに、str[k]="あ"というかんじに出来るのないでしょうか?
結局ルビーは、パールと同じで日本語(多言語)対応じゃないしなんか使いにくいのでどうせなら、
jcodeでStringにアドオンなんかしないで組み込みクラスをrubyの方が用意したらどうですか?
class JapaneseString とかかな。
591:デフォルトの名無しさん
08/09/06 20:06:07
str.setJavaneseCharCodePointAt(index, "あ");
APIはこんなところでしょうか。
592:デフォルトの名無しさん
08/09/06 20:14:52
不覚にもJavaneseに吹いた
でも初心者スレを荒らすのは勘弁してね
593:デフォルトの名無しさん
08/09/06 20:20:11
javaを語る人はjavanese
594:デフォルトの名無しさん
08/09/06 20:39:48
いやいや、マジで困ってるんですが…
serializationは、dumpのStringはrubyだとtaint/untaintの腐ったレベルに影響あると思うんでdumpは外部用だと思います。
それでdumpは使えないので、他にsjis, euc, u16, u8とかの一文字をstrに追加できるセッターないですか?
595:デフォルトの名無しさん
08/09/06 20:49:09
matz.dump # ダンプ松本
596:デフォルトの名無しさん
08/09/06 20:58:56
Matzは神ですけど、matz は orz みたく凹んこで反省してるように見えませんか?
597:デフォルトの名無しさん
08/09/06 21:02:05
[*str.bytes]
↑↓
bytes.map{|b| b.chr }.join
だろうか
598:デフォルトの名無しさん
08/09/06 21:44:48
Javaneseってジャワ語という意味だったな
599:デフォルトの名無しさん
08/09/06 21:54:41
str.concatとarr.push使って自分で実装しました。
というか、スクリプトはテキスト(日本語)処理が主要な用途なんで、これぐらい(ライブラリ作成者側が面倒でも)当然用意しておくべきじゃないですか?
>>597
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]
なんで無理です。あと、よくわかないんですけど、[*str.each_byte]は間接参照か何かですか?
イテレータとか使うといちいちAPIみないといけなくなって面倒なんで、この程度の処理はwhileで実装です。
というか、こういう処理はwhileで十分あって、関数ポインタやデリゲートの用途じゃあるまいし、イテレーターなんてカッコつけて使うもんじゃないですよw
600:デフォルトの名無しさん
08/09/06 21:57:48
>>589-591, 594
まず目的として何がやりたいのかを説明しろ
そこがわからないと適切なアドバイスもできん
601:600
08/09/06 21:58:56
ごめんね、スルーしなかった俺が悪かった
602:デフォルトの名無しさん
08/09/06 22:01:48
イテレーターは自分で作ったclassやライブラリーのデータ構造をイテレートするときのもので、
StringやArrayみたいな組み込みで汎用用途じゃ、あまり向かないじゃないでしょうかね。用意されてはいるが継承用かな。
といっても、Stringには一文字処理のget/set可能なイテレートを当然に用意しておいてもらえませんかね。
とくにbyteとchar用のsetがないじゃん。
603:デフォルトの名無しさん
08/09/06 22:08:42
1.9使えばいいんじゃね?
604:デフォルトの名無しさん
08/09/06 22:22:14
そろそろ飽きた
605:デフォルトの名無しさん
08/09/06 22:33:11
[*"foo".bytes].map(&:chr).join # => "foo"
なにコレ?
606:デフォルトの名無しさん
08/09/07 02:02:43
>>567
nil に対する比較演算は nil を返してほしい口?
つうか、なんで勘弁してほしいわけ?
607:デフォルトの名無しさん
08/09/07 02:35:21
全てがオブジェクトじゃなくていい派でしょ
608:デフォルトの名無しさん
08/09/07 03:13:47
>>602
>イテレーターは自分で作ったclassやライブラリーのデータ構造をイテレートするときのもので、
>StringやArrayみたいな組み込みで汎用用途じゃ、あまり向かないじゃないでしょうかね。用意されてはいるが継承用かな。
どこをどう見て、そう判断したんですか。
>といっても、Stringには一文字処理のget/set可能なイテレートを当然に用意しておいてもらえませんかね。
>とくにbyteとchar用のsetがないじゃん。
Ruby1.8では、文字列はただのバイト列なので、Javaのように文字単位での扱いはあまり得意じゃありません。
ただ、文字単位で扱わなくても済む場合がほとんどなので、あなたが「1文字ずつ扱って何をしようとしているか」をまず書いてみてください。
きっとだれかが、1文字ずつではない処理方法を提示してくれると思います。
それから、全般的に日本語に不自由されているようですが、もっと人に伝わるような文章を書いてください。
エスパーするにも限度があります。
609:デフォルトの名無しさん
08/09/07 03:25:03
>>606-608
>>564
610:デフォルトの名無しさん
08/09/07 04:00:37
>>608
質問者に、質問し返す人いますが、あなたは少ししつこい。
あなたのプログラミングスタイルと全く違う人もたくさんいるんですけど、あなたは一生Webクリーチャーでいいんで、黙っててくれませんか?
一文字の処理を所望なのに、一文字の処理じゃない方法を提示する必要はないでしょ。
あなたに仕事を任せても、全く仕様を読まないでいつも失敗ばかりしてるんだろうと思うんで、あなたはその辺にいるゴミか何かでしょうか?
とにかくVBとかの方が儲かりますよ。
611:デフォルトの名無しさん
08/09/07 04:10:34
>エスパーするにも限度があります。
>>608を読んでみても、おまえが無能なのがよく分かるな
おまえのエスパーなど誰も期待してないけど?
612:デフォルトの名無しさん
08/09/07 04:13:57
たぶん>>608は低学歴で脳みそ文系ちゃんだから相手しちゃダメ。
いつまでもこのスレに居座っていてみんな迷惑してんだからw
613:デフォルトの名無しさん
08/09/07 05:38:13
>>608
モルモン教に入信したいなら、まずは創価学会を脱退してからですよ。
614:デフォルトの名無しさん
08/09/07 05:45:54
>字単位で扱わなくても済む場合がほとんどなので
split(//)とかで結局文字単位になるんだし、文の前後が矛盾してるじゃん。
こいつは何のことをいってんだ?
それと、Javaは文字単位char[]でなくてStringで処理しますが、知らないことに無駄口しない方がいいんじゃないですか?
日本語の文法から勉強なさった方がいいんじゃないですか。
615:デフォルトの名無しさん
08/09/07 05:55:02
だから文系プログラマーにかまうな。思考盗聴されて頭おかしくされちゃうぞ!
616:デフォルトの名無しさん
08/09/07 06:31:32
思考盗聴か…層化じゃ当然だよな……
617:デフォルトの名無しさん
08/09/07 07:01:15
仕事してんのに一人でも女がいるとホント面倒だよなwww
女は端っこでマンコの手入れでもして、いつでも準備OKにしてればいいんじゃね?
618:デフォルトの名無しさん
08/09/07 08:17:32
>>608
落ち着け
こんな時は冷静にスルーだ
619:デフォルトの名無しさん
08/09/07 09:13:37
さすがにプログラマに女はいないだろw
数学の女、哲学の女、以上にキモイな。
仮に想像したとしても、頭モサモサのフケだらけ、体臭はニンニク臭いなんじゃないの?
そんなキモ女はどこで道を間違っちゃったんだろうな…
620:デフォルトの名無しさん
08/09/07 09:22:41
catch io exception
621:デフォルトの名無しさん
08/09/07 11:31:25
>>617
俺もそう思う。
まず連中は論理的に説明しても理解しない。「できない」じゃなくて「しない」なんだよ。
生意気にも「いいじゃないですか〜」とか言ってて許されるとか思ってる。
「俺が上司なんだよ!!!なめんなよ首にすんぞ」
とか思っても労働法違反になるので言わないです、ごめんなさい。
ついて行きたいと思わせる男の魅力が足りないのでしょうね、ごめんなさい。
そういえば、大学時代も「いい人」止まりだったなぁ・・・
付き合ったは良いけど卒業後すぐに分かれたなぁ・・・
一回しかえっちしてないよ・・・ちなみに童貞×処女
622:デフォルトの名無しさん
08/09/07 11:32:56
>>619
と思いたいんですね
623:デフォルトの名無しさん
08/09/07 11:51:51
引数 param で受け取ったものが配列でも「 1個」でも each で同様に回したい、という場合
param.to_a.each do |e|
...
と書くのが単純だったと思うんですが、
warning: default `to_a' will be obsolete
とか生意気で妥当な警告が出ます。
わりと頻繁に使うメソッド内でのことなんですが、どう対処するのが自然ですか?
param = [param] unless param.is_a?(Array)
と書くべきですか?
「このメソッドは配列しか受け取らないので 1個だけのときは事前に hoge([para]) にしろ」
とマニュアルレベルで警告するべきですか?
624:デフォルトの名無しさん
08/09/07 12:11:16
>>623
配列かどうか調べて、配列じゃない場合は配列に入れるという動作が "正しい"
もしくは、マニュアルなどで「配列しか受け付けません」と明記する
[*param].each do |e| とすると文字数減った上に見かけ動作も一緒だが、無駄に穴掘って埋めてる感じが超キモい
これはそもそも
irb> def disp(param); param.to_a.each{|e| puts e }; end
irb> disp('hoge')
hoge
irb> disp(1)
(irb):1: warning: default `to_a' will be obsolete
1
irb> class Integer; def to_a; [self]; end; end
irb> disp(1)
1
ということで、「オブジェクトを to_a する意図が不明瞭なので頼るな」という意図の警告だ
obj.to_a と [obj] が同じとは限らないし、違うことのほうが妥当なこともある
配列の要素にしたいのなら、to_a ではなく明示的に配列作ってそこに入れろという話
irb> Time.now
Sun Sep 07 12:01:10 +0900 2008
irb> Time.now.to_a
[14, 1, 12, 7, 9, 2008, 0, 251, false, "JST"]
irb> [Time.now]
[Sun Sep 07 12:01:18 +0900 2008]
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5388日前に更新/211 KB
担当:undef