Ruby初心者スレッドPart8
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/09/28(木) 15:28:59関連スレやURLは2以降。Ruby on Railsの質問はWebProg板のRailsスレで。
■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
・ぐぐる
・マニュアルで探す http://www.ruby-lang.org/ja/man/
・FAQを読む http://ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
・詳しい内容(「動きません」「うまくできません」では回答しようがない)
・エラーメッセージ(なるべくそのままで)
・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。
■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
宗教的な話題は禁止します。
0951デフォルトの名無しさん
2006/11/20(月) 11:38:330952デフォルトの名無しさん
2006/11/20(月) 11:53:10たのしいRubyという本をもっております。
0953デフォルトの名無しさん
2006/11/20(月) 11:58:50Perl使え
0954デフォルトの名無しさん
2006/11/20(月) 12:17:10Rubyは君の要求を満たさない
他の言語を使うべし
0955デフォルトの名無しさん
2006/11/20(月) 12:56:35つbox = { "key" => value }
0956デフォルトの名無しさん
2006/11/20(月) 13:06:21細かいところで気が利かないんだよね
0957デフォルトの名無しさん
2006/11/20(月) 13:21:28for($i=0:$i<=100,$i=$i+5){}
をRubyでするにはどうしたらよいのでしょうか?
while文ではなくfor文でしたいのですが
0958デフォルトの名無しさん
2006/11/20(月) 14:00:400959デフォルトの名無しさん
2006/11/20(月) 14:13:43これで何故、3つとれないのでしょうか?
in `[]': wrong number of arguments (3 for 2) (ArgumentError)
こんなエラーがでます。
0960デフォルトの名無しさん
2006/11/20(月) 14:24:38Rubyでは普通は Range#step を使う
(0..100).step(5) {|i| puts i }
この場合は、Integer#step(limit, step) {|n| ... } も使えるけど。
0961デフォルトの名無しさん
2006/11/20(月) 14:29:54なるほどありがごうざいます。
その場合は、<= >= が有効なのかな。
> や < だと
100 の場合 100も含まれることになりますよね。
0962デフォルトの名無しさん
2006/11/20(月) 14:35:16下端までテキストを表示したあと、さらにもう一行テキストを追加したときに、
自動で下端の追加された部分を表示するようにする(上端が一行隠れて全体が一行上に上がる?)
にはどうしたらいいですか教えて下さいお願いします。
0963デフォルトの名無しさん
2006/11/20(月) 14:52:22> バカにつける薬はない
こういう言い訳ばっかりして一向に薬を出さない医者、みたいな言語だよねRubyって。
0964デフォルトの名無しさん
2006/11/20(月) 15:08:090965959
2006/11/20(月) 15:09:550966デフォルトの名無しさん
2006/11/20(月) 15:16:54http://www.ruby-lang.org/ja/man/?cmd=view;name=Array
0968デフォルトの名無しさん
2006/11/20(月) 15:32:520969デフォルトの名無しさん
2006/11/20(月) 15:36:15簡潔さで勝負して欲しくないよね。負けるから。
0970959
2006/11/20(月) 15:39:02のってなくないですか?
0971デフォルトの名無しさん
2006/11/20(月) 15:44:180972959
2006/11/20(月) 15:54:46できたー
0974デフォルトの名無しさん
2006/11/20(月) 15:56:48まったくだ
0975デフォルトの名無しさん
2006/11/20(月) 16:03:39本当に簡潔さで勝負するとどっちがより簡潔に書けるかは、Code Golfを見ればわかる。
今現在で17のchallangeがあって、1位がRubyなのが10個、1位がPerlなのが6個、1位がPythonなのが1個。
0976959
2006/11/20(月) 16:07:03[1..6] みたいなはできるのに[1,3,4]とかはできるようにしなかったのでしょうか?
0977デフォルトの名無しさん
2006/11/20(月) 16:08:06長いのがJava
0978959
2006/11/20(月) 16:08:49a,b,c = split(/\t/)[1,3,8]
できたー
0979デフォルトの名無しさん
2006/11/20(月) 16:10:57短い→Perl
普通→Ruby、Python
長い→Java
長ったらしい→PHP
つーか関数名やメソッド名の話じゃねーのか
0980デフォルトの名無しさん
2006/11/20(月) 16:12:00Array#[start, length] というのがあるし今さらそういうふうにはできんなぁ。
>>961
Rangeリテラルは、終端を含む場合は、start..end で、含まない場合は start...end になる。
プロポーショナルフォントだと分かりづらいけど、ドットの個数が違う。
0981デフォルトの名無しさん
2006/11/20(月) 16:19:20Rubyにarray[i,j,k]というような記法はないので
array = [1, 2, 3, 4, 5]
a, b, c = array[0,1,3]
と書くとエラーになる
なぜArgumentErrorなのかは自分で考えてくれ
0982961
2006/11/20(月) 16:19:20細かい使い分けが必要なんですね。
でもstepだと100から0 に5ずつ下がるのができないのですが
100..0 が使えないのは何故なのでしょうか?使えるようにしたほうが便利な気がするのですが
0984デフォルトの名無しさん
2006/11/20(月) 16:23:28スレ壊したいのか
0985デフォルトの名無しさん
2006/11/20(月) 16:24:270986デフォルトの名無しさん
2006/11/20(月) 17:46:15moji = {"List" => "qwrtyuiopl",
"word1" => "ABCDEFGHIJ,
"word2" => "1234567890}
for i in 0..9
words = moji["word1"][i].chr + ncbi["word2"][i].chr
p words
box = {"#{words}"=>"#{moji["List"][i].chr}"}
p box
end
p box["B2"]
何故これを実行する nilが返ってくるのでしょうか?
words には それぞれ words["key"]→value として値が格納されているのではないのでしょうか?
p bo["B2"]を指定するとwが返ってくるとはずなのですが、かえってきません。
0987デフォルトの名無しさん
2006/11/20(月) 17:56:16"List" => "qwrtyuiopl",
"word1" => "ABCDEFGHIJ",
"word2" => "1234567890"
}
box = {}
for i in 0..9
words = moji["word1"][i, 1] + moji["word2"][i, 1]
p words
box[words] = moji["List"][i, 1]
p box
end
p box["B2"]
0988962
2006/11/20(月) 18:58:330989デフォルトの名無しさん
2006/11/20(月) 19:32:190990デフォルトの名無しさん
2006/11/21(火) 02:00:59「s」がnilの場合は空文字で初期化して
その他の場合は変更ナシとしたいのですが
上のコードより綺麗に書けますか?
0991デフォルトの名無しさん
2006/11/21(火) 02:18:380992デフォルトの名無しさん
2006/11/21(火) 02:25:37おおっ
ではこの場合のもっと洗練された記述法はありますか?
s = ((c == nil) ? ('') : (c))
0993デフォルトの名無しさん
2006/11/21(火) 03:48:15逐次入力して変換していくものを作りたいのですが、
これだとgetsが動いてくれないようです。どこがおかしいか教えていただけませんか?
while arg = ARGV.shift
print arg, ":\n"
name = gets.chomp.
system("mv #{arg} #{name}")
end
0994デフォルトの名無しさん
2006/11/21(火) 03:50:30c ||= ゙゙
>>992
s = c || ゙゙
0995デフォルトの名無しさん
2006/11/21(火) 04:36:18そっかー どうも!
0996デフォルトの名無しさん
2006/11/21(火) 07:53:300997デフォルトの名無しさん
2006/11/21(火) 08:43:150998デフォルトの名無しさん
2006/11/21(火) 08:43:460999デフォルトの名無しさん
2006/11/21(火) 08:45:421000デフォルトの名無しさん
2006/11/21(火) 08:46:06http://pc8.2ch.net/test/read.cgi/tech/1164065622/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。