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


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

Ruby 初心者スレッド Part 19



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

   【Ruby1.9 は不安定な開発版であり初心者には全く向きません】
   【最新安定版の Ruby1.8.6 の使用を強くお勧めします】

関連スレや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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。


159 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 19:47:52 ]
>>158
File.dirname(file_name)


160 名前:158 mailto:sage [2008/04/19(土) 20:01:35 ]
DirとかFileUtilsばかり見てました
ありがとうございます


161 名前:デフォルトの名無しさん [2008/04/19(土) 20:05:51 ]
ライブラリのクラスメソッドを使う場合に
それを後に書く方法があれば教えてください
たとえば
File.dirname 'hogehoge'

'hogehoge'.(File.dirname)
みたいな形で書きたいんです

162 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 20:10:40 ]
>>161
そうですか

163 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 20:15:50 ]
どっかでそんな後置の言語を見た気がする
仮にRubyで実現するとしても、それを繋ぐのは . ではないだろうな

164 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 20:22:51 ]
気持ち悪いと思わないなら
class String
def dirname
File.dirname(self)
end
end

あとはpathnameというライブラリもある。


165 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 20:38:34 ]
というか何のためにそうしたいのかによるな

166 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 21:08:19 ]
class Object
 def callback(method, mypos=0, *args)
  args.insert mypos, self
  method.call *args
 end
end

p Math.sqrt(400)
#=> 20.0
p 400.callback Math.method(:sqrt)
#=> 20.0

p [1,2,3,4,5,6][2,3]
#=> [3, 4, 5]
p 3.callback([1,2,3,4,5,6].method(:[]), 1, 2)
#=> [3, 4, 5]

こんなもんでどうかな

167 名前:166 mailto:sage [2008/04/19(土) 21:09:58 ]
上のは >>161




168 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 21:46:47 ]
>>165
クラスとオブジェクトとメソッドの理解がまだ足りないんだと思う
気持ちはわかるが考え方が不当

欲しいのはいわば pathenize_dirname メソッドと推測

p '/usr/local/bin/ruby'.pathenize_dirname
"/usr/local/bin/"

メソッドの引数形式を「カッコ悪い」と感じる時期に罹るハシカみたいな病気だ

169 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 22:30:45 ]
え、>>161は見た目が気に入らないというだけ?
機能的な話かと思ったら、どうやら明後日を向いていたようだ。
そういうことであれば >>166>>161の美意識には適うまい。

170 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 22:33:10 ]
こんなのもありか。

class String
def to_path
Pathname(self)
end
end

p '/usr/local/bin/ruby'.to_path.dirname


171 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 22:33:40 ]
いや、pではto_strは呼ばれないな。putsで。


172 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 15:48:07 ]
ERBについて教えてください。
railsのテンプレートでERBが使われてますが、
これは何かのタイミングで一度rubyのクラスに変換されてからHTMLに再び変換されるのでしょうか?
例えばJavaのJSPがJSP→サーブレット→HTMLと変換されるのと同じ流れですか?

173 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 16:05:58 ]
>>172
<%%>の中身がそのままRubyコードとして抜き出され、
それ以外は_erbout.print ... という形に変換されてから
Rubyで評価される感じです。


174 名前:172 mailto:sage [2008/04/20(日) 16:30:00 ]
>>173
なるほど、jspみたいにrhtmlファイルがクラスに対応するわけではないんですね。
あまり綺麗な仕組みではないですね…。
ありがとうございました。

175 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 16:31:52 ]
単純に、ERBの簡単な使い方勉強するとイメージしやすいと思うよ
eRubyの仕様じゃなくて、ライブラリの使い方ね

176 名前:デフォルトの名無しさん [2008/04/20(日) 17:47:33 ]
mixiの「メッセージ」を送信したくて、d.hatena.ne.jp/emergent/20070321/1174472206を参考にして、以下のように書いてみました。
基本的にeditの部分だけを変更し

def edit title, content
@id = "12345"#相手のid
@edit_page = @agent.get('mixi.jp/send_message.pl?id='+@id)
edit_form = @edit_page.forms.name("messageForm").first
edit_form['subject'] = title.toeuc
edit_form['body'] = content.toeuc
confirm_page = @agent.submit(edit_form)
conf_form = confirm_page.forms[0]
p @agent.submit(conf_form)
end


以下を実行しました。

def mixi_message
mdw = MixiMessage.new("hoge@hoge.com","hogehoge")
mdw.login
mdw.edit "テストタイトル", "テスト本文"
end

177 名前:デフォルトの名無しさん [2008/04/20(日) 17:48:07 ]
結果、次のような出力になり、メッセージは送信されていませんでした。

#<WWW::Mechanize::File:0x4b03cdc @response={"connection"=>"close", "date"=>"Sun,
20 Apr 2008 08:11:37 GMT", "x-dealer"=>"034093", "content-type"=>"text/plain; c
harset=euc-jp", "server"=>"Apache", "content-length"=>"0"}, @code="200", @uri=#<
URI::HTTP:0x2583fc0 URL:mixi.jp/send_message.pl?id=12345>, @filename="s
end_message.pl", @body="">


送信できていない原因は何でしょうか?



178 名前:デフォルトの名無しさん [2008/04/20(日) 17:49:28 ]
結果、次のような出力になり、メッセージは送信されていませんでした。

#<WWW::Mechanize::File:0x4b03cdc @response={"connection"=>"close", "date"=>"Sun,
20 Apr 2008 08:11:37 GMT", "x-dealer"=>"034093", "content-type"=>"text/plain; c
harset=euc-jp", "server"=>"Apache", "content-length"=>"0"}, @code="200", @uri=#<
URI::HTTP:0x2583fc0 URL:mixi.jp/send_message.pl?id=12345>, @filename="s
end_message.pl", @body="">


送信できていない原因は何でしょうか?

179 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 18:16:00 ]
>>176
WWW::Mechanizeは実際にサーバから送られてきたHTMLから指定された要素を抽出して実行している

素直に読むと

mixi.jp/send_message.pl?id=ユーザーIDというページの結果を取得し、
<form name="messageForm"> というフォームで1番最初にあるフォーム中にある、
<input name="subject"> という、type が text か何かの入力欄に引数titleの内容を日本語EUCで入力
<input name="body"> という、type が text か何かの入力欄に引数contentの内容を日本語EUCで入力
<form name="messageForm"> のsubmit ボタンを「押して」結果のページを取得する
取得した結果の中の最初の <form> の submit ボタンを「押して」結果のページを取得する

という処理なんだけど、mixiのページ構成はきちんとそのようになってるかい?

180 名前:デフォルトの名無しさん [2008/04/20(日) 18:55:48 ]
176です。お返事ありがとうございます。
p conf_form
としてみたところ、出力に

#<WWW::Mechanize::Form::Field:0x4ba0de8 @name="submit", @value="confirm">

があり、これは、
「確認画面」の <input type="hidden" name="submit" value="confirm"> と一致しているので、
おそらく「確認画面」までは到達していると思います。

「確認画面」では formはひとつしかなく、

<form action="send_message.pl?id=1056392" method=post>
<input type="hidden" name="submit" value="confirm">
<!--略-->
<input name=yes type=submit value=" 送 信 ">
<!--略-->
<input name=no type=submit value=" 修 正 ">
</form>

という構成になっており、submitが二つあるのが怪しいかなと思っているのですが、
指定のない場合は、先にある「送信」が押されると思うので、条件は満たしているような気がします。
ほかに問題となりそうな点は何でしょうか?

181 名前:デフォルトの名無しさん [2008/04/20(日) 20:37:02 ]
num++
みたいな書き方が他言語とは挙動が異なるみたいなんですが
これはどういう動作をしているのでしょうか?

182 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 20:47:58 ]
そもそも ++ はないよ

183 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 20:48:11 ]
rubyにそんな演算子は存在しない

184 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 23:54:38 ]
>>182-183
ありがとうございました
なんでないんでしょうね?
実装も単純そうなのになぁ

185 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 00:08:05 ]




説明するの面倒なのでぐぐってくれ
インクリメントの実装自体は簡単なんだが、Rubyのほうそくが みだれる ので採用されない

186 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 00:12:19 ]
かっちょええ説明法があればたぶん普通に採用されると思う
さあ頑張って
「自分を破壊し別のオブジェクトを生み出して置き換える」
メソッドの意味を説明して説得するんだ

187 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 00:18:12 ]
モルモン教義的に不死がタブーでないのなら
Rubyでベニクラゲをモデリングしたいと言ってみる



188 名前:デフォルトの名無しさん [2008/04/21(月) 00:23:36 ]
ループが正常に実行した時にのみ、ある処理を実行する
というプログラムを美しく書く方法があれば教えてください。
フラグを用意し、ループを抜けてからフラグをチェックするのが
普通だと思いますが、フラグの存在が冗長な気がします
例外を使うのも、何かやりすぎのような気がします

189 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 00:56:43 ]
do_this if array.all? {|x| ... }
とかじゃなく?


190 名前:デフォルトの名無しさん [2008/04/21(月) 03:20:44 ]
どこでもrescueされなかった例外を補足するには
どうしたらいいですか?

191 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 03:27:37 ]
rescue すればいい

192 名前:デフォルトの名無しさん [2008/04/21(月) 03:56:54 ]
全体を囲む大きなbeginブロックを書くということですか?
視認性が悪くなるので、
前もってエラーハンドラみたいなものが登録できたらいいと思うのですが・・

193 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 04:07:33 ]
基本的には処理はトップレベルにベタ書きすべきじゃないと思うから
(変数はなるべくローカルスコープに入れた方がいいので)、
C などの main 関数みたいに全ての処理を囲んだ関数を作って
トップレベルに記述する処理はその関数のみにしておくと良い。
そういう状態であれば、begin で囲むのもそこだけで済む。

194 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 04:18:35 ]
ふーむなるほど…
ありがとうございました

195 名前:デフォルトの名無しさん [2008/04/21(月) 06:16:46 ]
Timeオブジェクトを引き算するとfloatが返ってきます
時間の差をあらわすオブジェクト(間隔オブジェクト?)が
返ってきて欲しいのですがどうしたらいいですか?

196 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 07:44:30 ]
>>196
返って来たFloatがその間隔オブジェクト(秒.マイクロ秒)
欲しい単位が分なら (t2 - t1).to_i / 60 すればいい

197 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 10:59:01 ]
>>186
代入演算子の一種として実装すればよい
例:a += 1



198 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:39:36 ]
このへんを蒸し返してみたら?

blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-list/6233?6096-6403


199 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:23:48 ]
num++に問題があるというより
++numとnum++の挙動の違いをRubyの中に組み込むのに難があるという感じ?

200 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:32:18 ]
succはあるんだから、前置++は構文だけの問題だね
後置は……


201 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:42:48 ]
> succはあるんだから
ほほう
君のRubyでは
3.succ
として 3が 4になるのか?

202 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:43:01 ]
馬鹿ばっかだな
演算子で終わることに自体に問題があるんだろ

203 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:45:52 ]
>>201
ああ、succはsucc!じゃないよね
吊ってきます


204 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:59:58 ]
で、誰が演算子で終わることを問題にしてるの?

205 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 23:51:33 ]
Cだと 1++ で 1 が 2 になるのか。
おもしろいな

206 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:02:31 ]
演算子で終わることの意味も分からない馬鹿がいるな

207 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:16:53 ]
演算子で終わる云々なんて、この何回もループした議論の中で出てきたっけ?
そりゃ内部仕様は変えなきゃいかんだろうが、「演算子で終わったら駄目」な理由は?
というか採用されても、「特殊なメソッド」以上のものにはならんと思うが



208 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:17:20 ]
RubyでCGI作ってみてるのですが、system(id root)とかのコマンド結果が
どうもHTTPヘッダーとして出力されてしまっているようです。

どうにか出力しない方法ってあるんでしょうか。

209 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:18:59 ]
パイプ使って、標準出力/エラー出力を捨てとけ。

210 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 00:23:10 ]
>>209
ありがとです。

211 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 01:48:37 ]
DBIを使ってPostgresSQLと接続しようとしたのですが、上手くいきません。
環境は、
OS CentOS 5.1 64bit
Postgres 8.3.1
ruby-1.8.6-p114
ruby-postgres-0.7.1
dbi-0.2.0
です

接続しようとすると`load_driver'エラーが出ます。ruby-postgresだけだと接続出来るのですが、dbiだと駄目です。
ちなみにdbiのインストールオプションはruby setup.rb config --with=dbi,dbd_pgでインストールしました。

$ irb
irb(main):001:0> require "postgres"
=> true
irb(main):002:0> PGconn.connect("localhost", 5432, "", "", "testdb","user","wassword")
=> #<PGconn:0x2aaaaabaceb0>
irb(main):003:0> require "dbi"
=> true
irb(main):004:0> DBI.connect("dbi:postgres:testdb:localhost", "user", "wassword")
DBI::InterfaceError: Unable to load driver 'postgres'
from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:352:in `load_driver'
from /usr/local/lib/ruby/1.8/monitor.rb:242:in `synchronize'
from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:282:in `load_driver'
from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:233:in `_get_full_driver'
from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:219:in `connect'
from (irb):4
from (eval):3

よろしくお願いします。

212 名前:デフォルトの名無しさん [2008/04/22(火) 02:42:51 ]
広くメソッドというもの自体をオーバーライドすることは出来ますか?
メソッドすべてにフックを仕込んで、メッセージのやりとりを
ロギングしたり、そういうことがしたいんですが

213 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 02:51:19 ]
ttp://doc.loveruby.net/refm/api/view/method/Kernel/m/set_trace_func

214 名前:212 mailto:sage [2008/04/22(火) 03:04:54 ]
>>213
こんな機能があったんですね
ありがとうございました

215 名前:デフォルトの名無しさん [2008/04/22(火) 03:21:12 ]
RubyWay読んでたら、Stringのeachは1.9ではなくなり、
each_lineを使うようになったと書いてありました。
今書いてるスクリプトには、ファイルからの読み込み処理等で
eachが結構あります。
これは書き換えないと1.9以降では動かなくなるのでしょうか?

216 名前:デフォルトの名無しさん [2008/04/22(火) 06:46:11 ]
ハッシュの存在しないキーを参照してもnilが返ってくるだけでノーエラーですが
多次元配列で存在しないキーを参照すると
undefined method `[]' for nil
になります
存在しなかったとしてもエラーが出ないように参照する方法を
教えて下さい

217 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 07:11:08 ]
def nil.[](i)
nil
end



218 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 07:42:47 ]
ハッシュのデフォルト値を[]にするとか

219 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 08:03:40 ]
あ、スマンぼけてた。問題は配列のほうか。

220 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 08:16:16 ]
多重ハッシュでも存在しないキー指定したら
undefined method `[]' for nil
になるじゃん

何をしたいか明確に書けよヴォケ

221 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 10:20:15 ]
>>216
配列じゃなくてハッシュを使う

222 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 11:25:06 ]
多次元配列などというものはRubyには存在しません

223 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 13:57:40 ]
class TajigenHairetsu << Hash
def [](*arg)
super(arg)
end
def []=(*arg)
super(arg[1,-1], arg.last)
end

224 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 17:41:56 ]
rubyのコマンドからファイルの有無を確認する方法は無いでしょうか?
無ければ指定したテキストファイルを作り
あれば追記するような仕組みを持ちたいので

225 名前:216 mailto:sage [2008/04/22(火) 17:50:19 ]
217さんの方法でしのぐことにしました
ありがとうございました
>>220
ハッシュか配列かではなく
nilに[]が使えないことをどうしようかという話でした

226 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 18:17:46 ]
>>224
ファイルのことについてどうこうしたいんだからFileクラスのメソッド探してみれ

227 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 19:31:56 ]
だからfetch(i,default)を使えと



228 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 20:24:49 ]
問答無用に'a'でopenすればええんとちゃうの?

229 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:04:12 ]
>>228
のぞんでいたどうさができました
おそらく不具合の原因は参考にしていたサイトがafile=File.new(*****)
とnewを使っていたためのようです
今まで5個ほど言語を学んできましたがrubyほどシンプルで強力な言語は
無いと感じました
本当にありがとうございます!

230 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:28:45 ]
>>215

動かなくなるよ。
str.each は、str.scan(/^/).each に置き換えよう。


231 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:42:21 ]
IO#eachは残ってるんじゃなかったっけ?

232 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:15:01 ]
class String
 unless method_defined?(:lines)
  def lines
   self
  end
 end
end

としておいて、1.8系でもstr.lines.eachと書いておくという手も…

233 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:06:52 ]
irb > print "test"
この結果が
ttt => nil
と出るんですが、これはどういう意味なんですか?

irb => ttt
と出力されることを期待したのですが。

234 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:09:48 ]
tttはtestのつもり?
irbの=>の後ろに出るのは、入力した式(print "test")を評価した値。
x= print "test"
とすると x = nil になるのといっしょ。

testという文字列が書き出されるのは式の評価(値を求めること)の、まぁ副作用だ。


235 名前:233 mailto:sage [2008/04/22(火) 23:38:04 ]
>>234
おぉ丁寧にありがとうございます。
入力コマンドを単純に実行するのではなく評価するだけなんですね。
てか使い道あるんでしょうかね…?

236 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:34:45 ]
ないよ

237 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:37:12 ]
irb > print "test"
この結果が
ttt => nil
^^^~~~~~~
^:printの出力
~:irbが返り値のインスペクションを出力

コマンドって…



238 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:43:07 ]
ttt => String
にはならんの?

239 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:51:04 ]
たぶん出力の意味を勘違いしてるよ。
irbは「=> 返り値」を印字してるだけ。
その前のprintの出力に改行がないからそんな見た目なだけ。
もしそんな出力がされるってことは、printがStringクラスを返してるというイミフなことになるぞ。

240 名前:デフォルトの名無しさん [2008/04/23(水) 06:24:22 ]
RubyのIDEでおすすめは何ですか?
今はNetBeansを使っていますが、他のファイルのクラス等が
自動補完できないのでもう少し高機能なのが欲しいと思っています

241 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 09:33:10 ]
おすすめは無い
あと1年くらいしたら便利なの出てくるぜと3年くらい前から言われてる

242 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 11:46:14 ]
rubyらしいな

243 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 14:09:47 ]
pythonから移ってきた人向けの入門ページとかないですか?

244 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 15:31:57 ]
for文について質問です。

for book in book_array
end

このように配列を回すfor文の中でインデックスを取得することは出来ないのでしょうか?


245 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 15:33:59 ]
Enumerable#each_with_index

246 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 15:53:58 ]
>>245

ありがとうございます!できました。
java出身だとfor文でインデックス取れないって変な感じですね。


247 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:15:35 ]
数値計算関係はpython
日本語処理はruby
という使い分けしようと思っててるんですが、うまくミックスする方法はないのでしょうか?



248 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:39:13 ]
質問が曖昧すぎて意味不明


249 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 19:40:43 ]
>>246
for i in (0..book_array.size)
p i, book_array[i]
end

カウンタ変数もなしにインデックスが取れるわけないだろう

250 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:37:16 ]
>>249
× ..
○ ...

251 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:54:00 ]
上と下ならどっちがrubyらしいですか?

if foo == ""
end

if foo.is_a? String && foo.empty?
end

252 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:07:13 ]
オブジェクトの型をチェックするコードは常用するものではない。


253 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:04:56 ]
>>247
全部Python

254 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:13:04 ]
てかRubyの日本語処理ってNKFべっただし
PythonからRuby向けを切り出す必要があるとは思えない
Pythonで書けるなら全部Pythonで書くのがベスト

255 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:18:41 ]
rubyで簡単なツールを作ろうと考えております
GUIを組むにはruby/tkとか色々種類があるようなのですが、
最もメジャーなのはどれでしょうか?

ツールの詳細としては、チェックボックスやリストで設定項目を設定し、
それによるシミュレーション結果をメッセージボックスに文字列で
順次吐き出すだけというものです

※一応Javaも少しかじってます
もし「rubyのGUIは終わってるからJavaでやれ」とかならば
それはそれで結論として構いません

256 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:28:07 ]
際だって使われているGUIツールキットはないと思うが、tkは最初から
付いてくるから比較的メジャーと思われる。
自分はマカーなので、必要な場合はOSに付いてくるRubyCocoaを使う
ことになると思うけど。

Javaもかじってる人ならJRubyでSwing使うというのもアリかね。


257 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:31:29 ]
>>255
FXRuby



258 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:35:52 ]
railsでいいじゃん

259 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:38:22 ]
>>255
ttp://www.gesource.jp/programming/ruby/gui/index.html
おいらはApollo派







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

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

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