Ruby初心者質問スレPart1
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG雑談、ML・blogウオッチはこちらでどうぞ。
むーんうるふ Part13 【Rubyについて】
http://pc5.2ch.net/test/read.cgi/tech/1100533226/
Ruby Home Page
http://www.ruby-lang.org/ja/
前スレ - Rubyについて Part 12
http://pc5.2ch.net/test/read.cgi/tech/1100199861/
0153デフォルトの名無しさん
NGNGですな。オブジェクトの状態を変えるのであれば、
そのオブジェクトが属するクラスにメソッドを定義するのが普通でしょう。
0154デフォルトの名無しさん
NGNGhogeの部分を変数で指定する事はできますか?
0155デフォルトの名無しさん
NGNG148じゃないけど、148と同じようなことを悩んでた。
>Ruby で引数に渡したオブジェクトを操作するって普通はやんない気がする。
わかりやすい。
>オブジェクトの状態を変えるのであれば、
>そのオブジェクトが属するクラスにメソッドを定義するのが普通でしょう。
なるほど。この言葉をチュートリアルにでものせて欲しい。
って、チュートリアルないからリファレンスか。
0156デフォルトの名無しさん
NGNG=> "hoge"
irb(main):002:0> /#{s}/
=> /hoge/
0157154
NGNGありがとうございます!
勉強になりますた!
0158デフォルトの名無しさん
NGNG当然といえば、当然だなぁ。
俺、今まで Regexp.escape とか使ってた記憶が。
0159デフォルトの名無しさん
NGNGhttp://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-list/38183?38059-38391
のなかにある、38183(及び38206,38233など)からはじまるスレッドには、ruby
における変数とは何か、それをどのように説明するのが適切か、の熱いバトルが
交わされています。われわれ初心者、中級者にも参考になりますよ。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGそうですか?
>Rubyの場合は、他の言語でいう「値の入れ物」的な変数とは違い、すべてオブジ
>ェクトの参照になるみたいですね。。
まさに変数入れ物説と変数ラベル説の論争が、matzさんを交えて行われたのです
がね。無関係としか読めないようではまことに残念です。
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166165
NGNGRubyで、書かれてたらどんなんなるのかと・・・
ちょっとした好奇心です。
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNGParlやらで書かれた検索エンジンじゃね?
0169165
NGNGすみません
namazuだ。
「u」が抜けてた
0170デフォルトの名無しさん
NGNGんじゃそれで潜ってこい
http://www.geocities.co.jp/SiliconValley/1816/
0171165
NGNG0172デフォルトの名無しさん
NGNGそれがあまりに拡張しやすくてオリジナルを追い抜いてしまった
というようなプロジェクトってあるの?
0173デフォルトの名無しさん
NGNGそれがあまりに動作が速く組み込みやすくてオリジナルを追い抜いてしまった
というようなプロジェクトなら知ってる
0174デフォルトの名無しさん
NGNGmigemo は確か最初 perl で書かれてたな。
どういう経緯で ruby で書き換えられたのか知らないけど。
0175デフォルトの名無しさん
NGNG> を扱っているうちにプログラムがごちゃごちゃして修正が不可能になったため、
> あるとき Rubyで書き直すことにした。
横着プログラミング 第2回: Migemo: 日本語のインクリメンタル検索
ttp://namazu.org/~satoru/unimag/2/
0176デフォルトの名無しさん
NGNGもとはなにを!? VBか?
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGprint test #=> abc\def
p test #=> "abc\\def"
pで表示したときに、バックスラッシュが\\で表されているのに驚いたのですが
こういうものなのですか?
なんでこうなるんでしょうか?
0180デフォルトの名無しさん
NGNGエスケープして表示される。
0181デフォルトの名無しさん
NGNGRubyの内部で、バックスラッシュが\\で扱われるってことではないんですね。
0182デフォルトの名無しさん
NGNGRDE以外に、どういうものがあるんでしょうか?
0183デフォルトの名無しさん
NGNGどぞー
(´・ω・`)つttp://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Tools+for+Ruby
0184182
NGNGレスありがとうございます。
沢山あったんですね。
皆さんはどれをお使いなのでしょうか?
0185デフォルトの名無しさん
NGNG……漏れもトリ頭ですた orz
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGもっとスマートな方法があれば教えて頂けませんか?
count = 5
(1..count).each{ print(" ") }
print("hoge\n")
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGprint("hoge\n")
Stringに数を掛けると繰り返し。
0191デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGちなみに、 count 回繰り返す、は Range#each より count.times { ... } がよさげ。
0194188
NGNGなるほど!そういうメソッドもあるんですね。
練習がてら、下の様なファイル列挙コードを作っていたのですが
もっと洗練されたコードに出来ますでしょうか?
def enum_files(path, layer = 0)
Dir.foreach(path){|f|
if f != "." && f != ".."
print(" " * layer)
if File.directory?(path + "/" + f)
print("[dir] ", f, "\n")
enum_files(path + "/" + f, layer + 1)
else
print("[file] ", f, "\n")
end
end
}
end
enum_files("c:/")
0195デフォルトの名無しさん
NGNGまぁいいんじゃないか
メソッド名や変数名がちょっとこなれてない感じするけど
漏れは
enum_files -> puts_files
layer -> level
にしたほうが好みだ
0196188
NGNGとりあえず、問題なさそうなのでよかったです。
puts_files もいいですね。
確かにlayerよりlevelですね。
それにしてもRubyのプログラミングは楽しいですね。
噛めば噛むほど味が出てくるという感じで。
最初Perlを覚えようとしていたんですが、Rubyやって正解でした。
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGお前いい加減にしろよ。
ネタなら寒すぎるし、ネタじゃないなら何故レス無いかよく考えろ。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNGそれ以前にまだパラレルポートって載ってたっけ?
漏れの自宅マシンはもうそろそろ古株なのでシリアルもパラレルもまだあるが……
0203デフォルトの名無しさん
NGNGどこかweb上にあるでしょうか。日本語でなければ英語でもよいです。
0204デフォルトの名無しさん
NGNGrubyじゃできないのね。
了解です。
0205デフォルトの名無しさん
NGNG/dev/port
>>203
http://www.summa.jp/tutorial/index.html
0206デフォルトの名無しさん
NGNG英語が苦にならなければ
http://www.rubycentral.com/book/
がおすすめです。(邦訳あり)
最初の数章は良い入門書になります。
また、
Built-in Classes and Methods
という章は秀逸なリファレンスです。
chm形式のファイルがダウンロードができたんだが、場所を失念した。
ご存知の方、help.
まあ、2版を手に入れたほうが良いかもしれないが、
入門としてはこれで十分だし、良書であることは間違いない。
0207203
NGNGどうもありがとうございました。
0208デフォルトの名無しさん
NGNGchmはProgramming Ruby--onlineにある。そこの リンクスから辿れる。
0209デフォルトの名無しさん
NGNGThanks. Good job.
0210デフォルトの名無しさん
NGNG0211ねた?
NGNGExerb
http://exerb.sourceforge.jp/
0212デフォルトの名無しさん
NGNGありがとう
Microsoft .NET Framework 1.0が必要らしいのでいまだうんどーろしてます
ごめんねはじめてるびーしたからごめんね
0213デフォルトの名無しさん
NGNGMicrosoft .NET Framework 1.1じゃなくて?
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGApolloを使うという手もあるぞ
あっちなら.NETFrameworkも必要ないはずだし
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNGphi.so(Apolloの実体)込みでexerbでexeは作れるけど、
Apollo使うってことは結局Rubyをインストールするのと
同じなのであんまり意味無いと思う。
0218デフォルトの名無しさん
NGNGハッシュのキーにシンボルを使うと実行効率で有利ってのは
納得できるんですが、attr_readerとかにシンボルを渡すのは
実行効率からなの? だいたい1回しか実行されないだろうし、
文字列でもそんな変わんないんじゃないかと思うのですが…。
0219デフォルトの名無しさん
NGNG初めて知った。
0220デフォルトの名無しさん
NGNG個人的には、慣れてるし他人のスクリプト見ても Symbol 使ってることが多いから、
Symbol を使い続けるだろうけど。
むしろハッシュのキーにシンボルを利用するのは
相当差が出るケースくらいで、普通に文字列使ってるなあ。
0221デフォルトの名無しさん
NGNGあれ? Apollo で書かれたスクリプトを exerb で固めて使うとき
Apollo のインストールって必要だったっけ?
>>218
「メソッド名には Symbol を使う」という原則を、どこかで聞いた希ガス。
理由はよく分からない。正直、どっち使っても良いと思う。
0222デフォルトの名無しさん
NGNGSmalltalk のセレクタ(メソッド名)の実体はシンボルで、メソッド本体
(メソッドオブジェクト)へのアクセスや、その動的起動時のキーにシンボル
を使ったりもするけど、それとは関係あるのかな?
0223デフォルトの名無しさん
NGNGRubyでのバイナリ入出力の仕方が判りません。。
Cでいうところの、下の様な出力がしたいのですが。
------- C -------
FILE *fp = fopen("data", "wb");
int i = 128;
fwrite(&i, 1, sizeof(i), fp);
fclose(fp);
一応Rubyで下の様なコードを試してみたのですが
テキストに変換されて保存されてしまいます。
----- Ruby ------
n = 128
f = File.open("test.txt", "wb")
f.write(n)
f.close()
0224デフォルトの名無しさん
NGNG0225223
NGNGなるほど、pack/unpack というのがあるんですね。
構造体とかもこれでイケそうですね。
どうもありがとうございました。
0226デフォルトの名無しさん
NGNGいらないが、固めるときにちょっと面倒。
phi.soとphi.rbを一緒に詰め込んであげないといけないとか。
>>223
RubyのIO#writeはto_sされた結果が出力される。
Cのコードを見る限り128というコードを持った文字が出力されるのと同義なので、
File.open("test.txt", "wb") { |f| f.write(128.chr) }
でいいんじゃないだろうか。
というか中途半端だけどリファレンス見ろ。
0227デフォルトの名無しさん
NGNGhttp://members.lycos.co.uk/bakashin2/maripe0054.gif
http://members.lycos.co.uk/bakashin2/maripe0055.gif
http://members.lycos.co.uk/bakashin2/maripe0056.gif
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNGWi(ry
0230デフォルトの名無しさん
NGNG入力したキーを記録するプログラムを
作成したのですが,なぜか大文字のA,D,Bだけが
入力できません(キーを押しても何も表示されません).
Shiftを押さずに押すと,普通に小文字のa,d,bが
打てますので,機械的な問題ではありません.
他の大文字は入力することができます.
なんででしょう???
0231デフォルトの名無しさん
NGNGコードを見せれ。
0232デフォルトの名無しさん
NGNGぐぐってみたけどいまいちよくわからん
分かりやすいサンプルがあるとうれしい
こーかくとこういうhtmlができるとか
0233デフォルトの名無しさん
NGNGテストコードに埋め込む方がいいと主張してみる。
テスト==仕様みたいなもんだし、動的にメソッド定義する場合は
ソースのどこにドキュメント書いていいかわからないし。
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNGmatzがそれやってるって自白してたね。
0236デフォルトの名無しさん
NGNG>>232
http://www2.pos.to/~tosh/ruby/rdtool/ja/whats.html
http://www.rubyist.net/~rubikitch/RDP.cgi?cmd=view;name=RD
0237デフォルトの名無しさん
NGNGC言語で作ったものを移植してみましたつもりでしたが動きません。
どこがおかしいのでしょうか?
0238デフォルトの名無しさん
NGNGreturn の後にあるから)とか、入力してくださいというわりに gets とかじゃ
なくて ARGV から取ってるとかいうあたりがちょっと変なあたりかな。
また、 ARGV は文字列なので(gets等で読み取ったデータも文字列)、
get_total に渡す時は to_i しないといけないんじゃないか。
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGありがとうございます。
さっそく修正にかかります。
>>239
すいません。阿呆で。
0241デフォルトの名無しさん
NGNGというわけで、ほれ
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RDoc%B3%D0%A4%A8%BD%F1%A4%AD
0242sage
NGNG0243デフォルトの名無しさん
NGNGこういう閉鎖的な奴がいるからrubyって普及しねぇんだろうなぁとおもた。
0244デフォルトの名無しさん
NGNG全然違う。
StringIOは文字列にIO風のメソッドを追加してIOっぽく使えるようにしたもの。
うまく使うととても便利。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG「Ruby レシピブック 268の技」とか?
0250デフォルトの名無しさん
NGNGそういうのは普通コミュニティがコードを持ち寄ってサイトを作るものなんだけど
あいにくRubyコミュニティは普通じゃないので。
0251デフォルトの名無しさん
NGNG「逆引きRuby」とかは?
ttp://www.namaraii.com/rubytips/
0252デフォルトの名無しさん
NGNG待機以外の各行動は下一桁1→8を繰り返すというものなのですが。
1→8、でピタッと止めるようにしたいのですが。
どうすればよいのでしょうか_| ̄|○
■ このスレッドは過去ログ倉庫に格納されています