1 名前: 【大吉】 mailto:sage [2009/01/01(木) 13:13:22 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 【Ruby1.9 は不安定な開発版であり初心者には全く向きません】 【最新安定版の Ruby1.8.7 の使用をお勧めします】 ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。 1.9 の新機能の一部が利用可能なので初学者にお勧めです。 ※ただし十分安定しているとは言えないので プロダクション環境での利用にはお勧めしません。 関連スレやURLは>>2-8 あたりを見てください。Ruby on Railsの質問はRailsスレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
357 名前:デフォルトの名無しさん [2009/01/11(日) 00:27:31 ] RubyでGUIアプリケーションは作成可能でしょうか? 友人からは、GUIアプリケーションは VC++、VBとかじゃないと無理と聞いたのですが・・・
358 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:37:12 ] >>340 日本ではまだまだ遠いな www.google.co.jp/trends?q=php%2Cruby&ctab=0&geo=JP&geor=all&date=all&sort=0
359 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:37:34 ] >>354 self と other を比較する前に絶対値とらないと駄目なんじゃ。
360 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:38:08 ] def check(name) /name/ =~ "hiroyuki" 以下略 で/name/ をnameでマッチさせるのではなく引数の値を使うにはどうすればいいでしょうか?
361 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:50:37 ] >>357 pc11.2ch.net/test/read.cgi/tech/1200175247/302-312
362 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:08:45 ] ここまでBigDecimalへの言及無し。 ttp://www.ruby-lang.org/ja/man/html/BigDecimal.html irb> require 'bigdecimal' => true irb> BigDecimal.new("3.2") - BigDecimal.new("2.0") == BigDecimal.new("1.2") => true
363 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:11:56 ] 浮動小数点数の比較の話をしてるんだからBigDecimalの出る幕は無いだろ
364 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:20:00 ] >>354 サンクス。組み込みではないっつーことか。 >>355 まーゲーム作るときとかちょっとした数値計算、 後ユニットテスト書くときなんかにはいるけど、 確かに最後の例以外Rubyには不適だかなあ
365 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:21:22 ] >>360 def check(name) name =~ "horioyuki" で、 check呼ぶ時に正規表現リテラル渡せばよいのでは? check(/.+oyu.+/)
366 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:26:58 ] ちょっとお聞きしたいのですが、 wikiとかの表示によくあるプログラムの実行時間を 自分のスクリプトで表示したいのですが、 簡単にmsecの実行時間を測る方法はないでしょうか? スクリプトの終了前に puts Process.times.to_yaml とかやってみたんですが、表示がさっぱり?です。 utimeとstime を足したものが実行時間なのかな?
367 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:28:51 ] あれは単にWikiテキストの処理開始時と 処理終了時の差を取っただけなんじゃないか?
368 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:31:14 ] >>366 基本的な計測はbenchmarkライブラリ(標準添付)でOK あと、「Ruby プロファイラ」で検索すると色々出てくる
369 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:33:47 ] >>363 おおもとは、>>323 > (3.2-2.0) == 1.2 がfalseの理由を教えて下さい。 だから、小数を含む数の扱いについて一通り言及すべきだと思うんだ。
370 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:40:08 ] >>365 nameに渡す文字列はARGV.shiftで受け取ったものなんですよ・・・。 グローバル変数にすればよかったりしますかね・・・。
371 名前:370 mailto:sage [2009/01/11(日) 01:54:40 ] グローバルしてみましたが結局 =~ の 左辺,右辺に変数がきてもいいのでしょうか?
372 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:10:29 ] def check(name) /#{name}/ =~ "hiroyuki" end p check("hiroyuki") # => 0
373 名前:370 mailto:sage [2009/01/11(日) 02:17:30 ] >>372 ありがとうございました!!!!!!!!!うまくいきました。 =~の左辺の#{name}っていうのは変数としてみるってことですか?
374 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:18:34 ] >>368 サンクス benchmarkクラス使ってみる
375 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:28:14 ] >>373 まあそんな感じだ 「式展開」について勉強すればよくわかる www.ruby-lang.org/ja/man/html/_A5EAA5C6A5E9A5EB.html#a.bc.b0.c5.b8.b3.ab
376 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:28:22 ] 変な質問なうえにおそらく出来ないんだろうけど一縷の望みをかけて質問 メソッドの入れ子って出来ますか? たとえば、 def method1 処理 def method2 処理 end end としたら、method1だけ呼びだしたらmethod1の処理のみで終了。 method1.method2みたいに呼びだしたら両方の処理を実行、みたいな。 この書き方だと ttp://www.ruby-lang.org/ja/man/html/_A5AFA5E9A5B9A1BFA5E1A5BDA5C3A5C9A4CEC4EAB5C1.html#a.a5.e1.a5.bd.a5.c3.a5.c9.c4.ea.b5.c1.a4.ce.a5.cd.a5.b9.a5.c8 みたいになっちゃうから無理なのは明白だけど・・・ method1に引数を与えてmethod2の処理をif文でくくって引数の値で処理するか否かを 決めるって方法もあるけど、見た目的にごちゃごちゃするから嫌というか・・・ なんかいい方法あったら教えてください。
377 名前:370 mailto:sage [2009/01/11(日) 02:31:30 ] >>375 ありがとございます。 昨日Rubyはじめたばっかりでいろんなサイトからつぎはぎで趣味プログラムしてたんで リファレンスマニュアルというのをみてませんでした。まず、一読してみます!
378 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:32:20 ] >>376 無理 素直にモジュール使って、Mod1.method1としなされ
379 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:34:20 ] >>376 それではmethod2を定義しているだけで,method2を呼び出してはいない def method1 puts "call method1" def method2 puts "call method2" end method2 end
380 名前:379 mailto:sage [2009/01/11(日) 02:35:59 ] ごめんはやとちりした
381 名前:376 mailto:sage [2009/01/11(日) 02:45:25 ] >>378 無理かぁ・・・ありがと Mo1.method1・・・method2はどこへ? 実はmethod1の処理がイテレータを含んでいて、変数を一周するたびに初期化して使うんだけど、 場合によっては初期化する前にmethod2の処理でその変数を使いたいから↑のようなことに・・・ モジュールだとダメそうなのでおとなしく引数と条件文で動かします。。 >>380 ドンマイw
382 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 02:47:47 ] >>376 def method1 処理1 Proc.new do 処理2 end end method1 method1.call 近いことを無理やりやろうとすれば、 こんなのは思いつくが、普通はやらない 端的に言って不気味すぎる
383 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 03:00:57 ] いやいや、初心者のこんな突拍子もないアイデアから、すごいアイデアがでたりする。 1000個に1個ぐらい。 だから初心者は1000個のアイデアを出すんだ!
384 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 03:14:53 ] callが気に食わない def method1 処理1 pr = Proc.new do 処理2 end pr.instance_eval "alias :method2 :call" pr end method1 method1.method2
385 名前:376 mailto:sage [2009/01/11(日) 03:22:55 ] >>382 おお、できるんだ!? ありがと〜 ぶ、不気味なのか・・・ >>384 求めていたものが完璧に・・・お見事です。 お二方、ありがとうございます。
386 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 03:40:36 ] 開発環境なに使ってますか? 自分はLinuxでは基本Netbeansで、ちょっとした修正はemacsで。 eclipseとかもあるけどどんな開発環境使っているか気になったので・・・。
387 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 03:59:55 ] vi
388 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:07:59 ] 今時 vi はないだろう vi は。 俺は断然 vim だな。
389 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:10:20 ] メモ帳
390 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:14:26 ] 俺はEclipseにRubyプラグイン editer使ってる人は補完なくて大丈夫なの?
391 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:25:12 ] いや、もちろんエディタにも補完はあるよ VimのRubyに対する補完はかなり強力。それ以上に操作性が好きで使っているけど
392 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:29:52 ] ずっとEmacs ちなみにMatzもEmacs まあ人に何が良いか,って聞かれたらNetbeans勧めるかもな
393 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:30:07 ] viの学習曲線の最初でくじけたのでemacsで
394 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 07:48:14 ] 俺は断然 vi
395 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 08:18:34 ] あんな日本語も通らない化石エディタよく使う気になるな
396 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 08:56:02 ] 個人用途なので基本的にはどうでもいいんですが気になるので質問します HTMLとかから正規表現とかでデータ抜き出して、データ保管クラスのインスタンス変数に保管します。 initialize の時点でたくさんのインスタンス変数に値を入れたいんですが、 def initialize(params, data) @a = params[:a] @b = params[:b] @c, @d, @e = parse_in_init(data) end と def initialize(params, data) @a = params[:a] @b = params[:b] make_c_d_e(data) end def make_c_d_e(data) @c = someprocess1(data) @d = someprocess2(data) @e = someprocess3(data) end って、どっちが見通しいいもんでしょう? ちょっと面倒でも明示的に代入の形を見せる前者のほうが初期化プロセスっぽく見えて好ましい?
397 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 09:03:43 ] >>396 YES ただ、make_c_d_e みたいなそれっぽいのが initialize の直後に定義されてれば 「あーinitializeの続きかー」と思って読むから別に気にはしない Util.parsehtml とかどっか遠いとこに定義されてるクラスメソッドがinitializeで呼ばれてるとやる気なくす
398 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 09:38:12 ] def initialize(params, data) @params = params @data = parse_in_init(data) end
399 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 09:43:49 ] >>398 なにそのユーザー丸投げルーチン いちいちハッシュの引数で参照するのがめんどいまたは間違いやすいからインスタンス変数にしてんじゃねの
400 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 09:45:50 ] >>399 @params を書き込み可能にしておけば外部からデータ追加するのも楽々だぜ?
401 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:09:51 ] >>400 外部からデータを追加する必要があって、なおかつその方法しか考えられないようなときなら一理あるけど そうでなければ、ここでハッシュを使うのは問題が大きすぎる
402 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:15:06 ] Javascriptだと a={'hoge': huga, 'hage': fuga}; a.hoge a.hage にアクセス出来ていいんだよね
403 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:17:30 ] Ruby でもやろうと思えば出来るっしょ
404 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:17:39 ] アクセサ作ればいい めんどくさいけど
405 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:24:49 ] StructA = Struct.new(:hoge, :hage) a = StructA.new('huga', 'huga') p a.hoge p a[:hoge] p a[0] "huga" "huga" "huga" オーイエー >>402 どっかのgemにそんなのあったな
406 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:44:53 ] 来たなStruct厨 総員迎撃準備
407 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:51:36 ] Structって嫌われてんの?
408 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:01:58 ] Struct.newにJSONぶっこめる?
409 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:09:18 ] >>407 他言語から来た人がArrayやHashを使い込むことなく安易に使うものの代表だから、嫌がられてはいるね まずはArrayとHashを使い倒してからにして欲しいなと思う所存 >>408 分けてくれ
410 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:38:19 ] >>395 通るぞ?@Solaris10
411 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:39:19 ] ttp://www.ruby-lang.org/ja/documentation/ ここの検索こわれてるみたいなんだけどいつ治りますか
412 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:41:36 ] >>410 動物は一度鎖に繋がれてしまうと鎖が杭から外れていても 逃げられないと思い込んでしまうものなのです
413 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:42:25 ] >>410 それは日本語パッチ当たってるんじゃね てか、「お前らが使ってるのは vi じゃなくて vi クローンのどれかまたは vim だろ」というツッコミを 誰かがしないと終わらんな
414 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 12:25:43 ] >>413 OS標準。つか、Solarisは遠い昔から、日本語localeが入ってりゃちゃんと日本語使える。(viに限らず。そのせいで痛い目にあうこともまれにあるが)
415 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:15:48 ] emacs入ってない環境はたくさんあるけど、viが無い環境は稀。 まあ開発環境は何でも好きなの自分で入れろよと思うけどな。
416 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 14:49:23 ] だからメモ帳最強って何度言わせるんだよ!!
417 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 14:55:18 ] Windows環境でJmEditorとRDEとNotepad++を使い分ける俺に隙はなかった
418 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:08:19 ] >>415 のようなことを稀に聞くが、vi でファイル編集できない人間などおらん
419 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:21:16 ] Windows環境で、class Hoge(もしくは、def hoge、each do |x|)と打ってリターンをすると、 以下のように、endを付けインデントした位置にカーソルを持ってくるエディタはありますか? class Hoge[Retrun] ↓ class A | end
420 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:25:32 ] Meadow(or Xyzzy)を入れて自分で作れってのはなし?
421 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:25:41 ] >>419 xyzzyをカスタマイズ
422 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:46:14 ] >>420-421 自分でカスタマイズする技量がないのであきらめます
423 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:53:58 ] Solarisのviはずいぶん昔から日本語通るぞ。SunOS4は忘れたが。 ただ、Localeに縛られるので、Shift_JISのファイルなんかが来ちゃうと面倒。 LANG=とsettermでなんとかなった気もするけど、もう忘れた。 って無駄レスだな。
424 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:08:58 ] 以下、Personクラスの配列membersを、名前→性の順でソートすると、名前のソートがくずれます。 くずれないようにソートするにはどうすればいいのでしょうか? class Person attr_reader :name, :sex def initialize(name, sex) @name, @sex = name, sex end def show [@name, @sex] end end members = [] members.push Person.new("sasaki", "male") members.push Person.new("kato", "famale") members.push Person.new("fukada", "male") members.push Person.new("akai", "female") p members.map {|p| p.show } #=> [["sasaki", "male"], ["kato", "famale"], ["fukada", "male"], ["akai", "female"]] p members.sort_by {|p| p.name}.sort_by {|p| p.sex}.map {|p| p.show } #=> [["kato", "famale"], ["akai", "female"], ["fukada", "male"], ["sasaki", "male"]] #=> 望ましい結果 [["akai", "female"], ["kato", "famale"], ["fukada", "male"], ["sasaki", "male"]]
425 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:12:32 ] members.sort_by {|p| [p.name, p.sex]} じゃね?
426 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:21:48 ] 配列の比較に関してはドキュメントが弱いんだよね [1,2,2] < [1,2,3] [1,1,2] < [1,2,2] [1,4,4] < [2,1,1] x でソートしたあとに y でもソートしたいという場合は、Rubyでは data.sort_by{|a| [a.x, a.y]} と書く
427 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:28:14 ] >>425 それだと、 [["akai", "female"], ["fukada", "male"], ["kato", "famale"], ["sasaki", "male"]] となり、性のソートがくずれてしまいました。
428 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:55:33 ] >>427 どうソートしたいのか考えれ 崩れるも何も、ソートする順番の問題に過ぎない class Person attr_reader :name, :sex def initialize(name, sex) @name, @sex = name, sex end def show [@name, @sex] end def Person.sort_sex(sex) if sex=='male' then 1 else -1 end end end members = [] members.push Person.new("sasaki", "male") members.push Person.new("kato", "famale") members.push Person.new("fukada", "male") members.push Person.new("akai", "female") members.sort_by {|p| [Person.sort_sex(p.sex), p.name]}
429 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 17:09:06 ] >>428 うまくいきました。 サンクス。
430 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 18:13:53 ] diaspar.jp/node/185
431 名前:デフォルトの名無しさん [2009/01/11(日) 19:37:19 ] Hpricot::Elem.new(Hpricot::STag.new('form')) をノコギリで書き換えようと思い Nokogiri::XML::Node.new('form')としたら ArgumentError: wrong number of arguments (1 for 2) のエラーが出ました。 RDocには,new(name)、と引数は一つなのですが,どうしてでしょう。このnameはStringで与えてもだめ?
432 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 19:53:44 ] >>431 ttp://nokogiri.rubyforge.org/nokogiri/classes/Nokogiri/XML/Node.src/M000044.html 第2引数はNokogiri::XML::Documentっぽい ドキュメントが間違ってるんだろうな
433 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 22:53:05 ] >>419 Aptanaとか、EclipseベースのIDEならいけるんじゃないかな。
434 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 23:17:19 ] >>419 どうせEmacs使わんだろうけどコメントしとく emacsのruby-electric-modeだと defスペース と打った時点でendが補完される その後 ruby-mode の ruby-reindent-then-newline-and-indent を使って改行すればインデントも同時にされる この程度ならEmacsユーザならごく当たり前のこと というかRuby用の動作があるエディタならみんな似たようなことできるでしょ?
435 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 00:38:32 ] >>419 Vim の場合 runtime/ftplugin/ruby.vim runtime/indent/ruby.vim を調べてみたけど、そういうのなかった。 %HOME%/vimfiles/ftplugin/ruby.vim か $HOME/.vim/ftplugin/ruby.vim に、 以下を入れておけば、OK inoreab <buffer> module module<cr>end<up><end> inoreab <buffer> class class<cr>end<up><end> inoreab <buffer> def def<cr>end<up><end> inoreab <buffer> do do<cr>end<up><end> inoreab <buffer> case case<cr>end<up><end> inoreab <buffer> begin begin<cr>end<up><end>
436 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 01:06:25 ] hash = {} [:a, :b, :c].each {|k| hash[k] = @hash[k] } という処理をもっと簡単に書く方法があれば教えてください。
437 名前:デフォルトの名無しさん [2009/01/12(月) 01:14:36 ] hash = @hash.dup()
438 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 01:45:16 ] >>435 endwise.vim というプラグインがある www.vim.org/scripts/script.php?script_id=2386
439 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 03:17:20 ] >>419 EclipseかNetBeansでsnipet使うのはどうだろうか? リターンでは無理だが別のキーで、コードの展開はできるぞ
440 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 04:15:34 ] >>436 hash.merge!(@hash)
441 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 07:19:55 ] >>436 それが一番短い部類 「○○というキーを持つペアを [k, v] の配列で返す」みたいなメソッドって標準には無いんだよね hash = Hash[@hash.find{|k, v| [:a, :b, :c].include?(k)}]
442 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 07:22:22 ] 書いててなんか短いなとは思ったんだ hash = Hash[*@hash.find{|k, v| [:a, :b, :c].include?(k)}.flatten] うーん
443 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 07:31:20 ] hash という変数名は全てのオブジェクトに存在する hash っていうメソッド名と被るから、 特に拘りがあるのでなければ避けておいたほうが吉 プログラム(1行のみ): p hash 結果: 22412530 適当なハッシュの変数名は h が人気 h と書かれていれば、ほぼ全員がハッシュかなと推測してくれる
444 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 09:09:34 ] 遅延評価はあるから バックくおーとみたいなのはできるかもしれない
445 名前:デフォルトの名無しさん [2009/01/12(月) 10:04:50 ] ActiveRecordでsqlite3のDEFAULT CURRENT_DATEに 相当するのは何? 今,record.date = Date::todayみたいにいちいちやってるのだけど, なんだか,もっとスマートな方法がある気がするので,質問
446 名前:デフォルトの名無しさん [2009/01/12(月) 11:02:22 ] 質問です。 スキルアップのためにRubyでビジネス向けシステムを作れという課題が出ました。 勤怠管理システムのような物を作ろうかなと考えています。 私の言語スキルはCのみでオブジェクト言語は概念しかわかりません。 Cは基本情報合格しました。 とりあえずRuby1.8をインストールしようとしましたが失敗しました。 (コンソール画面から先に進めません) こんな初心者にお勧めのRuby書籍を教えてください。 前述の通り、インストールから失敗してしまいましたので インストール方法も解説している物が欲しいです。 最終的に簡単なシステムを作らなければいけないので 入門系と実践系の物をお勧めいただければと思います。 どうかよろしくお願いします。
447 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:08:49 ] >>446 何をもって「失敗した」と言ってるの? Rubyインストールしただけだったら別に開発環境が入るわけじゃないぞ。 あと使ってるOSは?
448 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:14:05 ] Ruby学習者に必要なもの(ある程度持っていると暗黙のうちに仮定されているもの) ・ OSへのある程度の習熟 ・ コマンドライン操作 ・ HTTPとウェブに関する基礎知識 ・ データベース利用に関する基礎知識(Rails限定) ・ PerlかUNIX Cの教科書的な基礎知識
449 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:19:00 ] >>448 …持ってなくてもいいが、まあ、持ってないとひたすらに遠回りではあるな 歩行練習と自転車乗る練習を同時にするようなもんで、学習量と学習時間が倍くらいになる >>446 本当にCで自分用プログラム作れるだけの技量があるか怪しいと思うんだが、コマンドライン操作はできるかい
450 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:22:55 ] できるだろ Cができるってことはmakeとかも使えるってことなんだから
451 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:13:45 ] >私の言語スキルはCのみでオブジェクト言語は概念しかわかりません。 >Cは基本情報合格しました。 Cができるなんてどこにも書いてないぞ
452 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:16:51 ] Cが出来てRUbyで着ない香具師なんていない 初心者詐称 釣り決定
453 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:19:53 ] > こんな初心者にお勧めのRuby書籍を教えてください。 >>2
454 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:21:46 ] >>446 よろしければその会社でのあなたの給料と実質労働時間を教えてください
455 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:23:32 ] >スキルアップのためにRubyでビジネス向けシステムを作れという課題が出ました。 会社員だなんてどこにも書いてないぞ
456 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 12:26:23 ] インストールも出来ない初心者向きの本を勧めれば回答終了じゃないのか、これ。
457 名前:446 mailto:sage [2009/01/12(月) 12:35:30 ] 早いお答えありがとうございます。 こちらの回答が遅くて申し訳ありません。 下で個別にもレスしますがCの実践的な開発経験はありません。 資格試験(基本情報)で問題として出されるレベルのプログラムを 一人で完成させる事はできます。 わかりにくいようでしたらプログラムの基礎の基礎(ループやメモリ)だけは わかるズブの素人としてご指導頂ければ、と思います。 >>447 RailsをインストールするためにDOS画面にコマンドを打ち込んでも NoFound〜的文章が表示されて先に進みません。 今、手元にインストールしようとしたマシンがないので 正確なエラー文はわかりません。 インストールガイドはネット上で見つけた動画を参考にしたのですが これもインストールするパソコンにブックマークしていたので 今この場ではわかりません。 わからない事が多くてすいません。 「これが必要」という情報があれば調べてきます。 OSはWindowsVistaです。