[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 21:32 / Filesize : 199 KB / Number-of Response : 759
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 31



1 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 17:31:07 ]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

★注意★ Ruby 1.9.1 は初心者には時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。
   (理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に未対応であるためです。)
 なお 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 で勉強すれば将来スムーズに 1.9 系に移行できるでしょう。

関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の 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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

9 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:00:13 ]
プログラミング自体がまったくの初心者ですがrubyがんばって習得したいと思います
とりあえずrubyをインストールしてvimというテキストエディタから動かしたいのですが
自分なりにいろいろ調べてみたのですがわかりません・・・
おしえてください
よろしくお願いします

10 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:05:25 ]
vim は使わなくてよい
素直に通常のテキストエディタで書いて
素直に通常のターミナルなりコマンドプロンプトなりから実行しろ

11 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:07:34 ]
vimを使いたいのです
よろしくお願いします!

12 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:12:37 ]
じゃあvimで書いて、vim終了させて実行しる

13 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:13:46 ]
>>9
そうだな、まずは使っているOSとインストールしたRubyのバージョンから聞こうか

14 名前: mailto:sage [2009/09/17(木) 18:18:07 ]
>>13
すいません
使っているOSはWindos XP sp3 32bit?です
rubyはまだインストールしていません
こちらで聞いて教えてもらってやった方が確実だとおもったので
よろしくお願いします

15 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:23:57 ]
vim は使わなくてよい
素直に通常のテキストエディタで書いて
素直に通常のターミナルなりコマンドプロンプトなりから実行しろ

16 名前:デフォルトの名無しさん [2009/09/17(木) 18:26:36 ]
全角uza

17 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:28:30 ]
>>14
最初はRubyistMagazineのページを見るといいかも。
ttp://jp.rubyist.net/magazine/?FirstStepRuby
以下引用
> Windows Me, 2000, XP, Vista (95, 98, 98SE)
> -------------------------------------
> 以下のサイトから ActiveScriptRuby の最新版をダウンロードしてインストールしてください。一番上からダウンロード出来るものをインストールして下さい。
> Windows 98 以前の Windows をお使いのかたは、あらかじめ Windows Installer 1.1 以上を入手しておく必要があります。
> ttp://www.artonx.org/data/asr/
> ActiveScript というものが何であるかを気にする必要はありません。

>>15
べつにVimでもいいんじゃない?どうもVimを使いたいという強いこだわりがあるようだし。



18 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:36:31 ]
>>14
1. ActiveScriptRubyをインストールする
2. コマンドプロンプトを開く
3. notepad test01.rb
4. メモ帳が開くので、コードを書いて保存
5. ruby test01.rb

19 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:37:20 ]
あ、3と5はコマンドプロンプトに打ち込む。

20 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:39:56 ]
ここで Cygwin とか言ったら怒られるんだろうなあw
Poderosa とあわせて結構快適だったんだが

vim っていっても gvim のことなんだろうし

21 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:45:06 ]
Cygwinは悩みの種になった記憶のが多い…
俺はCygwin入れるくらいなら仮想マシンにLinux入れるわ

22 名前: mailto:sage [2009/09/17(木) 18:45:18 ]
>>17
ありがとうございます
やってみます

>>18
メモ帳じゃなくてgvimを使いたいので・・・
こだわりです

vimじゃなくてgvimでした
すいません


23 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:47:33 ]
>>22
どうでもいいがコードを書くときは全角じゃダメだぞw

24 名前: mailto:sage [2009/09/17(木) 18:49:01 ]
安定版と最新版はどっちがいいでしょうか?

25 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:49:41 ]
最新版と書いてありますね
すいません

26 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:55:32 ]
>>9
まずはがんばれ。
初心者がどういうところでつまづくかというデータは大変貴重なので、
気が向いたときに「こういうところでつまづいた」というレポートをお願いします。



27 名前: mailto:sage [2009/09/17(木) 18:55:58 ]
ActiveScriptRubyの最新版のインストールが終わりました



28 名前: mailto:sage [2009/09/17(木) 18:57:11 ]
>>26
ありがとうございます!がんばります
とりあえず開発環境を作っているところです
よろしくお願いします

29 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:57:39 ]
通常は、ダサいアイコンを変更します

30 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:00:10 ]
プログラミング自体初心者でvimにこだわりってすごいなw
vim自体の操作には慣れてるのか? >>9

って、プログラミング初心者でvimに精通とかないよな
こりゃ無理だと思ったら当初の目的(プログラミング)を思い出して
とりあえずは普通のテキストエディタに戻ってやることを勧めておく

31 名前: mailto:sage [2009/09/17(木) 19:00:33 ]
たしかにかっこわるいですね・・・
クールな?アイコンないですか?
みなさんが使っているアイコンをおしえてください
真似します

32 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:02:12 ]
そんなのは hello. world の後でいいって

33 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:04:17 ]
vista で動く、RDE 以外の軽い IDE ないですかね?
うちの環境では RDE は微妙に不安定なんで。

34 名前: mailto:sage [2009/09/17(木) 19:04:35 ]
>>30
まったくなれていませんし知識もありません
テキストエディタを画像でぐぐったときにgvimが一番かっこいいと思ったので
それだけです
自分はなんでも形から入る傾向があるのもあります


35 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:06:22 ]
ActiveScriptRubyの最新版のインストールは終わりましたので
gvimのダウンロードからrubyとの関連づけ?の手順をおしえてください
教えてばかりで本当にすいません
よろしくお願いします

36 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:07:18 ]
RubyistMagazineのページに、チュートリアルが紹介してあんのな。

ttp://jp.rubyist.net/magazine/?FirstStepRuby
> Ruby ではじめるプログラミング
>
> とりあえず何をしたらいいのかわからない、という人は本誌 Rubyist Magazine の初心者向け連載があります。
> ttp://jp.rubyist.net/magazine/?0002-FirstProgramming
> ただし、この連載はプログラミング自体の初心者を対象にしているため、 すでに他言語でのプログラミング経験がある方には少々簡単すぎると思います。

>>9よ、これやってみない?『プログラミング自体の初心者を対象にしている』そうだから、
これを読んでわからなかったことを報告してもらえたら、
この記事の改善点として誰かがとりあげてくれるかもしれない。


37 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:07:25 ]
>>33
RDEはどの環境でもだいたい不安定だよ



38 名前: mailto:sage [2009/09/17(木) 19:09:00 ]
>>36
やります!
でもそのまえにvgimのほうを・・・



39 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:09:32 ]
>>33
「Ruby IDE」でぐぐってみよう。
Java製のならVistaでも動くと思う。

40 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:10:37 ]
>>38
たぶん、vimがいかに初心者に厳しいかを知らないのだろう。
悪いことは言わん。vimはhello worldができるようになってからにしておけ。

41 名前:デフォルトの名無しさん [2009/09/17(木) 19:12:25 ]
荒らしだろjk

42 名前: mailto:sage [2009/09/17(木) 19:12:29 ]
One-Click Installer - WindowsとActiveScriptRubyは別物ですか?


43 名前: mailto:sage [2009/09/17(木) 19:13:57 ]
荒らしではないですよ
真剣にやってます

44 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:14:21 ]
>>9
vim Part3
pc12.2ch.net/test/read.cgi/software/1224769266/

45 名前: mailto:sage [2009/09/17(木) 19:17:58 ]
hello worldのプログラムできました
うまく動いてくれたようです

46 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:22:21 ]
>>42
別物。似てるけど。
RubyistMagazineがActiveScriptRubyをお勧めしている以上、そっちをインストールしたほうがよい。

>>34
>テキストエディタを画像でぐぐったときにgvimが一番かっこいいと思ったので
>それだけです

そんな理由でgvimを選んだやつはまちがいなく挫折する。
gvimは敷居が高すぎるから初心者はやめておけ。


47 名前: mailto:sage [2009/09/17(木) 19:29:16 ]
>>46
わかりました

gvimは敷居が高いですか・・・
ttp://skitch.com/soh335/bi14a/quickrun-ruby-vim
こんな感じでやりたかったのです
ただかっこいい
それだけです




48 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:39:11 ]
>>47
これはMacのターミナルではないか?
ターミナルは半透明に出来るのでデスクトップピクチャ(壁紙)の猫が
透けて見えている。


49 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:45:19 ]
>>47
初心者がWindowsで使うなら、エディタとしては秀丸やxyzzyでいいんじゃないかな。
これなら初心者でも使えるし、習熟するにつれて強力にカスタマイズもできるし。

gvimはほんとのプロフェッショナル向け。プロが作業を極めるための道具であって、初心者が手を出す代物ではない。

50 名前: mailto:sage [2009/09/17(木) 19:45:44 ]
>>48
そこはどうでもいいのですがこんなかっこいい画面でプログラムを作りたいのです


51 名前: mailto:sage [2009/09/17(木) 19:48:37 ]
>>49
xyzzyもいいですね!
これなら初心者も使えるとのことなのでこれでお願いします
インストールから環境設定までおしえてください
よろしくお願いします

52 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:49:33 ]
カエレ

53 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:51:08 ]
>>49
xyzzyも自分でなんとかする人じゃないと相当難儀だぞw

54 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:53:29 ]
やはり教えてばかりでは嫌われますね
こちらはいたって真剣なのですが

55 名前: mailto:sage [2009/09/17(木) 19:54:10 ]
>>54はボクのレスです

56 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:58:39 ]
>>49
xyzzy駄目だろ
まさかvim使えないような奴に最初からgates.l入れさせる気か
着色と自動インデントさえされればなんでもいいはずだ

57 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 20:02:40 ]
>>54
自分のスレを読み返してごらんよ
Ruby よりエディタへの言及の方が多いよ



58 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 20:10:31 ]
hello world はgvimで書いたのか?

59 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 20:11:36 ]
この人に必要なのは、いろんなエディタをインストールして
ひととおり色設定をいじって遊んでみることだと思う。


60 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 20:12:14 ]
gvimの話はよそでやってくれ、とりあえず。
というか、vimをNGワードにするのが適切だな、こりゃ。

61 名前: mailto:sage [2009/09/17(木) 20:12:56 ]
>>58メモ帳です

62 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 20:45:34 ]
エディタのことは忘れて、まずは>>36のチュートリアルをやろうぜ。
エディタを語るにはきみはまだ若い。

63 名前: mailto:sage [2009/09/17(木) 21:00:39 ]
>>62
わかりました
質問があります
hello.rbというhello!と表示するプログラムを作ったのですが実行するときに
いちいち保存先までcd \とか入力していかないとエラーが出るので面倒です・・・
どこからでも○○○.rbと入力して実行するようにはできないのでしょうか?

今まで検索していたのですがnotepad++というエディタがありました
画面の色とか文字の色とか適当にいじって変えてます
gvimやxyzyyはまだまだ先のような気がします
かなり上級者向けのようです
でもやはり形だけでもいいのでgvimやxyzyyでやりたいですねえ・・・

64 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:03:13 ]
>>63
> どこからでも○○○.rbと入力して実行するようにはできないのでしょうか?
Ruby関係ないのでコマンドプロンプトの使い方勉強しろ
ディレクトリ移動関連の最低限必要なことは10分もあれば終わる

65 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:16:20 ]
昔話は嫌われるのだが、
UNIXからMSに移植されたツールは、とても多い。
sed,grep,awkとかね。
今でも、とても役に立ちますね。

MS-DOSの始めの頃に、**とか言う名前のフルスクリーンエディターが発売されました。
MS-DOSの環境であれば、同じようにちゃんと動く、ってのが売りです。
(このあたりが?の人は考古学者になったつもりで調査すべし)
結局、これは商業的な成功はなかったみたいですね。
INT21のせいだと思うのですが、とても遅かったのですよ、表示が。

ん、眠くなったので、続く

66 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:21:17 ]
スレ違い。初心者スレですので無用な語りはお避けください。

67 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:33:14 ]
>>63
>質問があります
>hello.rbというhello!と表示するプログラムを作ったのですが実行するときに
>いちいち保存先までcd ¥とか入力していかないとエラーが出るので面倒です・・・
>どこからでも○○○.rbと入力して実行するようにはできないのでしょうか?

質問の意味がわからない。どんなエラーがでるの?



68 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:38:36 ]
>>67
いやそれはそのまんまだろ
コマンドプロンプトの起動時のカレントディレクトリと自作ファイルを置くディレクトリが違うんだ
例はたいていカレントにあるスクリプトを起動しているから、それと同じようにするにはどうしたらいいかという話

つまりはディレクトリの概念と操作の勉強が要る

69 名前: mailto:sage [2009/09/17(木) 21:42:57 ]
>>68
コマンドプロンプトを開いたときは常に自作ファイルをおいているディレクトリから
はじめることはできませんか?
今の環境だといちいち自作ファイルをおいてあるディレクトリまでcdコマンドで移動しないと実行できません

>>68
ruby: No such file or directory -- hello.rb (LoadError)

70 名前: mailto:sage [2009/09/17(木) 21:47:06 ]
Cドライブの下にsrcというフォルダを作成してここに自作ファイルを保存しています
コマンドプロンプトから自作ファイルを実行するときは
ruby ○○○.rb 実行とするだけで動くようにはできませんか?
今の環境でこれをすると
ruby: No such file or directory -- hello.rb (LoadError)
と表示されてしまいます
ruby c:\src\hello.rb 実行とすれば動いてくれるのですが

71 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 22:09:11 ]
はやくパッチレベル上がらんかな
mingw使いはバイナリを上げられんではないか

72 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 22:27:10 ]
p0がどんどん広まるよー

73 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 22:27:36 ]
>>69
そういうことはできるのかな。わかんない。

移動がめんどくさいというだけなら、最初から「C:¥」を指定してコマンドプロンプトを起動するのはどうだろうか。

(1) C:¥Documents and Settings¥ユーザ名¥スタートメニュー¥プログラム¥アクセサリ をエクスプローラで開く
(2) 「コマンドプロンプト」ショートカットをデスクトップにコピー
(3) コピーしたショートカットを右クリックして「プロパティ」を選ぶ
(4) 「ショートカット」タブの「作業フォルダ」を「C:¥src」に指定して、OKボタンを押す
(5) コピーしたショートカットをダブルクリックすると、「C:¥src」に移動していることがわかる

>>68
おまえかしこいな。おれはさっぱりわからんかった。



74 名前:9 mailto:sage [2009/09/17(木) 22:50:25 ]
>>73ありがとうございます!
らくになりました!


75 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 04:52:49 ]
>>33
NetBeansオススメだぜ。

俺はRubyでちょっとした使い捨てプログラム書くときはxyzzyのruby-mode、
仕事のプロジェクトはNetBeansと使い分けてる。

>>69
"Command prompt from here"いれろ。ぐぐったらでてくる。
エクスプローラーからフォルダの右クリックで、そのフォルダを作業フォルダにしてコマンドプロンプトを開けるようになる。

76 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 11:27:41 ]
>>75
すでに解決しております
ありがとうございます
またお願いします

77 名前:見習い ◆YG1xRh8M6Ffb mailto:sage [2009/09/18(金) 11:39:09 ]
>>9です
質問することが多いと思いますので名前をつけさせていただきました
よろしくお願いします




78 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 12:12:53 ]
>>77
コテつけてくれるのはありがたい。



さ、NGにしよっと。

79 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 12:19:14 ]
無駄にスレをのばさないでください。>>見習い
S/Nが低下し過ぎ。

これがつづくと、だれもこのスレをみなくなって
質問しても答えてくれる人がいなくなってしまう。

80 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 12:20:16 ]
>>77
まあ気長に頑張れ
>>2 は見たか。多少値がはっても入門書ぐらいはちゃんとしたのを
買った読んで方がいいぞ

81 名前:見習い ◆YG1xRh8M6Ffb mailto:sage [2009/09/18(金) 12:23:09 ]
>>78さんw

>>79
気をつけます
すいません
S/Nってなんですか?

>>80
ありがとうございます
入門書は買うつもりです
PCだと目が疲れてくるのでやっぱりじっくり見てやるなら紙のほうがいいです


82 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 12:25:50 ]
君はググることすらしないのになんでここにいるん

83 名前:見習い ◆YG1xRh8M6Ffb mailto:sage [2009/09/18(金) 12:34:55 ]
>>82
ググってますよ

84 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 12:38:37 ]
>>79
どうして存在を認めて名前で呼ぶの

85 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 12:55:44 ]
初心者スレだから、いいんじゃね。
むしろ、初心者がどこで躓くのかを俺は知りたい。



86 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:01:55 ]
>>85
それを知りたいならこの板全部読め
全部載っている

87 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:04:19 ]
>>83
S/Nでぐぐった?
人に聞く前に自分で調べようって話



88 名前:見習い ◆YG1xRh8M6Ffb mailto:sage [2009/09/18(金) 13:08:30 ]
>>87
ぐぐりましたけどどれも関係なさそうなものばかりですよ


89 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:31:00 ]
rubyで再起処理をしようとすると、undefined method `each' for nil:NilClassと出ますが、再帰処理はできないのですか?

90 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:33:00 ]
>>88
いい加減なことを言うなよ
検索結果の最上位にずらっと並んでいるだろ……

というか、こういう Ruby とは何の関係もないやり取りがまさに N なわけだよ

91 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:35:52 ]
>>89

各オブジェクトがeachを持っているかどうかの判断をする必要があるんじゃないの?


92 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:36:55 ]
>>89
それは書き方間違ってるだけです
エラーの理由がそのまんまです
[1,2,3].each do |e| … と直接書いた場合は [1,2,3] をeach 内から読む手段がないんで
再帰したい場合はご面倒でも arr = [1,2,3] と変数として一度定義してから arr[1..-1] とか呼んでください

93 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:37:14 ]
>>89
意図せず nil に対して each を呼んでいる
コードを張れ

94 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:39:53 ]
>>91

オブジェクトにeachを持ってるか判断がいるのですか?
ちなみに下記コードで出ました
def treeRecur(activeCell,tree,hier,refCellName)

hier+=1

refCellName[activeCell].each{|activeRefCell|

tree << [activeCell , hier , activeRefCell]

treeRecur(activeRefCell , tree , hier , refCellName) ##再帰的に呼び出し
}
hier-=1
end

activeCellはString
treeは配列
hierは数値
refCellNameハッシュになってます。
それで:87:in `treeRecur'となってるのでtreeRecurが再帰できないのかと思ったのですが

95 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:49:58 ]
>>94
よくわからないけど停止条件が見当たらないよ

96 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:50:01 ]
原因がわかりました。

再帰したときにrefCellNameがnilになっています
(最初に呼び出された時は正しいデータが入ってました)

再帰したらrefCellNameのデータってnilになるものなんでしょうか?

97 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:51:29 ]
>>95
停止はrefCellName[activeCell]の中が空になったときです



98 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:53:34 ]
>>97
> 停止はrefCellName[activeCell]の中が空になったとき

refCellName[activeCell] が空になったら再帰から抜ける、という部分の
コードが見当たりませんが?

それと、空になるとはどうことだと理解してますか?


99 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:54:14 ]
each の中で再帰するなめんどくさいから
あと LCC は氏ね

空のハッシュに特定のキーを指定した場合の返り値は nil だ
とりあえず停止条件は明記しろ

def treeRecur(activeCell,tree,hier,refCellName)

hier+=1

refCellName[activeCell] && refCellName[activeCell].each{|activeRefCell|

tree << [activeCell , hier , activeRefCell]

treeRecur(activeRefCell , tree , hier , refCellName) ##再帰的に呼び出し
}
hier-=1
end

100 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 13:59:21 ]
>>96
いやそれであのエラーは出ない
nil[:a].each #=> NoMethodError: undefined method `[]' for nil:NilClass

each のレシーバが nil だっていうエラーだから
refCellName[activeCell] が nil のはず

どうしてそれが nil になるのかはよくわからん
refCellName から要素を削除する仕掛けが停止条件兼ねてどっかにあって
それと干渉してるんじゃないの?

101 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 14:00:19 ]
>>98-99
わかりました。

eachはnilはエラーを返すのですか

def treeRecur(activeCell,tree,hier,refCellName)

hier+=1
if refCellName[activeCell] == nil
return
end
refCellName[activeCell] && refCellName[activeCell].each{|activeRefCell|

tree << [activeCell , hier , activeRefCell]

treeRecur(activeRefCell , tree , hier , refCellName) ##再帰的に呼び出し
}
hier-=1
end

こうしたら動きました。2日前までperl中でして,perlはこれでも動くからできるかと思ってました。

102 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 14:04:24 ]
うん、再帰使ってるプログラムは
停止条件が関数の頭のほうに書いてあると漏れでも理解できて非常に助かる

103 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 14:05:54 ]
>>101
「NilClass に each メソッドが定義されていない」と認識するべき
レシーバが nil だからではない

nil.to_s は NilClass#to_s が定義されているからエラーは出ない
空文字列を返す

104 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 14:08:36 ]
>>103
なるほど

納得しました。クラスごとに定義が必要でnilにはなかったと
ありがとうございました


105 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 16:25:12 ]
初心者にカリカリしている人が多いようなので、再掲しました。

>>1
>■回答する人へ
>相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
>それができないならこないこと(だって初心者スレだもん)。
> ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
> ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
> ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

ここは初心者がバカな質問をすることを大目に見てあげられるマゾヒストのためのスレです。
初心者にカリカリするような人はこないでね。

106 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 16:30:37 ]
◆YG1xRh8M6Ffb乙

107 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 16:40:08 ]
>>105
「Rubyに関する」既出な質問やわけわかな質問なら、いくらでも大目に見る
スレ違いな質問(S/Nとか)はよそに行け

加えて言うと、調べる気がなさそうな人間に対しては
いくらマゾヒストでも親切でも教える気になれんよ
人力検索サイトに行け



108 名前:見習い ◆YG1xRh8M6Ffb mailto:sage [2009/09/18(金) 16:52:14 ]
ルビーのショートカットアイコンを変更したいのですが
右クリックしてプロパティから変更しようとしても”アイコンの変更”ボタンが
アクティブ?の状態になっておらず変更できません
どうすればいいですか?
よろしくお願いします

>>106
ちがいますw

109 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 17:33:05 ]
>>107
>加えて言うと、調べる気がなさそうな人間に対しては
>いくらマゾヒストでも親切でも教える気になれんよ

回答したいやつが回答すればいい。
回答したくないやつは黙って無視しとけばいい。
ここはもともとそういう場所。
調べる気がなさそうな人間がいれば、キーワードを教えてぐぐることを薦めるだけのこと。
その程度でカリカリするなら、こんなスレ見ない方がいいよ。ストレスたまるだけだから。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<199KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef