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


304 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 21:00:15 ]
>>300
それあるなぁ。
ワンライナーも併せて便利

305 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 21:10:58 ]
>>303 一人で納得してれば

306 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 21:51:50 ]
rubyで大枠の処理を書いて、細かいところはJavaを呼び出す

307 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:09:01 ]
JRubyでうんたらかんたらできる。
初期起動がかなり遅いけど。

308 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:36:39 ]
Rubyの利点って何って話だけど、
それよりむしろJRubyの利点が知りたい。

309 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:38:33 ]
JRubyの利点ってJavaのクラスが呼び出せるとかじゃないのかな。
これができると膨大なJavaのライブラリも使えるし。

個人的にはSwingあたりのGUIライブラリが楽に使えるとありがたい。


310 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:40:57 ]
大量にあるJavaの資産が使えるのがありがたい
標準のライブラリだけで大抵のものが一揃いして、もちろん完成度も高め。Swingもあるし

311 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:47:59 ]
>>309
>>310
へー、そうなんだ!
JAVA屋さんには便利なのかな

そういえばIronRubyはどうなったんだろう

312 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:55:35 ]
>>308
(顧客の)サーバにRubyのバイナリを入れるのは(政治的な意味で)非常に大変だが、
Javaはデフォで入ってるので、jarを1個放り込めばよいJRubyは非常にありがたい。




313 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:12:25 ]
>>312
その発想はなかった!
業務で使ってる人は大変なのね

314 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:40:01 ]
>>312
これあるよねー
unzipコマンドがない客先のサーバでzipファイルを解凍しなきゃいけなくて
さてどうしようと思ってたら、jarコマンドで解凍できた。
このときはjavaすげーとおもった。

315 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:18:07 ]
rubyの開発者
凄い人なんだろうけど、あらゆるruby本の監修になって名前貸すだけで稼ぎまくってるあの魂胆が嫌いだ

316 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:20:36 ]
成果をねたむ足引っ張り合い好きな国民性丸出し
トイレ掃除でもしてろ

317 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 01:24:23 ]
俺はUSBメモリにruby.exeとmsvcrt-ruby18.dllが入ってるな(他は grep sed)。
これだけでもコマンドプロンプトのお供に使えるところが好き。

Python はライブラリ無いと起動すらしないし、Perl は動くけど glob が使えねえし…。

318 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:03:04 ]
監修料なんて雀の涙だろ。


319 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:15:01 ]
 ヾヽヽ
 (,, ・∀・)チュンチュン
  ミ_ノ
  ″″

320 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:28:02 ]
>>318
どっかの年金では図柄変更バージョンごとに1千万とからしいけど。
図柄かえるだけのバージョンが100くらいある。


321 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:18:35 ]
監修料がわずかって…何を見て言ってんだ?
有名人になると筆者より儲けてるよ

322 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:32:49 ]
何を見て言ってんだ?



323 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:38:27 ]
どぞー
pc11.2ch.net/test/read.cgi/tech/1207233348/

324 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 06:20:24 ]
>>317
やあ俺
シェルと好みのエディタ入れれば、簡易開発環境が出来てしまうのが便利だ

325 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:13:17 ]
>>321
具体例をドゾー

326 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:43:14 ]
>>321
監修するなってこと? なんで? そのメリットは?
「成功者の収入が減ると、貧乏人の俺の胸がすく」という以外のメリットを感じないけど・・・。

327 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:53:42 ]
釣られんなよ、おまいら……。

328 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 10:31:38 ]
まぁ釣りだったことにしたいだろうなぁ、このフルボッコな状況じゃ。

329 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 12:53:29 ]
>>320
さすがに公共事業とは事情が全く異なるだろ。
そういうのはまた孫受け曾孫受けで政治家とか○暴とかの
たかり屋に流れるからその分割高だし。

330 名前:デフォルトの名無しさん [2008/04/29(火) 13:31:36 ]
ちょっとした質問です。



・・・忘れた

331 名前:デフォルトの名無しさん [2008/04/29(火) 13:34:16 ]
すいません、思いだしました!

Rubyで小物でもプログラムを書くときに、
クラス化しますか?
適当に書き下す(とは言っても100行オーバーの大きさ)場合はトップレベル関数ばりばりでも
よいと思うのですが、関数作りまくるプログラミングタイプだと、
いちいち関数化時に変数をグローバルにするのが面倒です。
また、配布とかも考えると、クラス化してライブラリとして使えるようにも、と思ってしまいます。

あなたはどうしてますか?

332 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:01:16 ]
うぜぇw



333 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:02:37 ]
配布を考える場合は、規模問わずほぼ確実にクラス化(モジュール化)する

配布を考えないなら、そのときどき
トップレベル関数(メソッド)から作り始めることもあれば
クラスの設計から始めることもある

ところで
>いちいち関数化時に変数をグローバルにするのが面倒です。
これはどういう意味なんだ

334 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:19:14 ]
この俺がエスパーしよう!

name = gets.chomp
hello = 'ぐっもーにん'
puts "#{name}さん、#{hello}"

をメソッドにすると

def say_hello
puts "#{$name}さん、#{$hello}"
end

$name = gets.chomp
$hello = 'ぐっもーにん'
say_hello

と書かなければならなくなって面倒だとか、たぶんそういう話だ!

335 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:33:57 ]
トップレベルは気持ち悪いからなんでもクラス化

336 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:35:08 ]
とりあえず関数だけで書いて
複雑になってきたらリファクタリングしてクラス化

337 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:42:55 ]
100行くらいなら、多分関数のみ

338 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:47:37 ]
メソッドのことを関数と言ってる奴は同一人物

339 名前:デフォルトの名無しさん [2008/04/29(火) 15:12:32 ]
>>333
>>いちいち関数化時に変数をグローバルにするのが面倒です。
>これはどういう意味なんだ

>>334 そのとうりです!!

>>338
トップレベルメソッドというべきでしたか?

340 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:59:49 ]
確か三年ぐらい前に、初心者だった自分も同じようなことを言われたんだが
グローバル変数の使用はお薦めしない(書き捨ての短いコードだとしても)
エスパー>>334の例を借りると

def say_hello(name, hello)
 puts "#{name}さん、#{hello}"
end

say_hello(gets.chomp, 'ぐっもーにん')

こんな風に引数として渡したほうがいい

341 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:47:55 ]
いくらなんでも324はないだろう

def init(opt)
$_option = opt
end
def exe(arg)
if $_option[:foo]

end

init :foo => :bar
exe "hoge"


とか?

342 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:53:28 ]
俺の場合は新規作成した場合、自然と指が

class

って動いちまうなあ。



343 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 17:03:15 ]
Pythonと比べるとRubyの方が直感的だと感じてしまうのはRubyに毒されたからなのか。
yieldの書き方とかはRubyの方がいいな。

344 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 17:06:54 ]
コルーチンがわかってないんだろ

345 名前:デフォルトの名無しさん [2008/04/29(火) 17:35:41 ]
>>342
毎回指で書くなら自動化すればいいじゃない

346 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 17:47:28 ]
これがコルーチンか。そう意識してみるとPythonの書き方もこれでもいいかと思えてくる。
でもRubyの方がコルーチンを中断している途中でなんか処理しているってイメージがしやすい気がする。
気のせいか慣れなのかもしれないけど。

347 名前:デフォルトの名無しさん [2008/04/29(火) 22:15:27 ]
メソッド・オーバーライトって、具体的に、どんなときに使ったことありますか?

348 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:31:43 ]
ライブラリのメソッドを上書きしたいとき

349 名前:デフォルトの名無しさん [2008/04/29(火) 22:49:20 ]
それはわかるんだけど、具体的にどんなメソッドを上書きしたの?

350 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:10:38 ]
inspect はしょっちゅうオーバーライドしてるなあ。
あと to_s も。

351 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:49:21 ]
>>349
OKまずはageだ

・自分で設計したクラスのサブクラスを作ったとき(基本)
・他所から持ってきたライブラリのバグを自分で直すとき
・ライブラリの挙動を少しいじくったり、機能を足したいとき(たいていサブクラスを作って上書きする)

上書きコードがある程度の量になってきたら、自分用のラッパーライブラリを作ることもある

352 名前:デフォルトの名無しさん mailto:sage 懐かしのuwarite [2008/04/30(水) 00:41:49 ]
再定義はオーバーライト(overwrite)じゃなくてオーバーライド(override)だな。




353 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 01:19:44 ]
そういえば、Object#inspectって循環参照があるオブジェクトに対してもちゃんと動くよね
これってどうやって検出してるんだろう。inspectは特に引数を受け取るでもないし

354 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 07:48:36 ]
>>353

Thread.current[:__inspect_key__] でobject_idを覚えてる。

355 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 09:26:26 ]
>>354
スレッドローカルストレージ使っているのか。なるほど。
353じゃないが参考になった。
これからもあわあわと質問に解凍しやがってください。

356 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 11:34:29 ]
>>354
そういうことかー。返答ありがとう。

357 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:32:29 ]
javaが呼べるのは便利そうだけど
c++(cじゃなくて)の呼び方がまとめてあるサイトないですか?

358 名前:デフォルトの名無しさん [2008/04/30(水) 19:38:33 ]
railsでないRubyではDB操作するのに何が一番使われてますか?
素のライブラリ?DBI?ActiveRecord?

359 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:38:38 ]
O/R MapperならActiveRecordかDataMapper
そうでなければDBIかMySQLライブラリ直書き

360 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 00:28:23 ]
activerecordだけ使うならrailsでやればいいのに
って思う。

361 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 00:31:00 ]
「Rails使うならActiveRecord使えばいいのに」なら分かるが
その逆はイミフだなぁ。


362 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:18:14 ]
initializeを勝手に呼び出すのは良くないんでしょうか。

class Foo
  ...
  def refresh
    initialize
  end
end



363 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:38:07 ]
よくないです

っていうか、そういうような処理を initialize に書いたらダメです
たとえば、別途セットアップ系のメソッドを作って、initialize と refresh から呼ぶようにするとかしてください

364 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 18:32:18 ]
>>363
なんでよくないの?

365 名前:デフォルトの名無しさん [2008/05/01(木) 19:28:22 ]
>>340
あー、わかります。

でもRubyは参照渡し?できないですよね。

単発なら返却値で返す。
複数の返却値だとタプル?じゃなくて配列で返して、
 hoge, mage = gethogemage
でよかったと思うんですが、なれてないと妙に気持ち悪いw
みんなこんなのやってんのかな

>>342
まず体を慣らすのはいいかもですねw

私も一番慣れてる言語だと、ファイル新規作成したら無意識でclass構文が書けます(まあ大抵はスニペット使いますけど)

366 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:27:49 ]
>365
Rubyはむしろ全て参照渡しと言っても良いくらいなのだが。

ただし代入(=、+=など)は変数の参照先を変えてしまうので
自身を書き換えるメソッドを使わず代入で書き換えようとした場合
変数の参照先が変わり、値渡しみたいに見える。

例えば文字列なら concat は文字列自身を書き換えるが
+= は新しい文字列を作り変数の参照先を書き換えるので元の変数に影響がない。

FixnumやSymbolなどは、自身を変更するメソッドを持たないので
実質的に値渡しになる。

367 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:29:19 ]
>>364
べつにいいと思うよ、何度呼ばれてもいいように設計されていれば。
foo = Foo.new(0) # Foo#initialize(0) が呼ばれる
foo.do_something!
foo.initialize(0) # リセットする
foo.do_something!
foo.initialize(0) # リセットする
...

もちろん>>363のようにしてもいい。すきにどうぞ。


368 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:57:27 ]
正規表現でCの文字列リテラルにマッチするようなのって書けないでしょうか?
/".*?"/にすると"aaa\"bbb"みたいな場合に"aaa\"で終わってしまいますが全体にマッチして欲しいんです
/".*(?<!\\)"/にしようと思ったら1.8では(?<!)が使えませんでした

369 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:03:40 ]
"([^"]*?\\.)*.*?"
とかよく書くけど、どうかな

370 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:12:20 ]
/"([^"\\]|\\.)+"/
こんな感じ?

371 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:28:07 ]
>>369 >>370
どちらでもいけました、ありがとうございます!
なんでこれでいいのかまだ良くわからないので頑張って解読します

372 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 02:12:18 ]
>>371
/"[^\\"]*(\\.[^\\"]*)*"/

こっちのほうが早いかな。

詳説 正規表現を読むのをオススメするよ



373 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 02:15:20 ]
db等の外部リソースを使った時は
Rubyの終了時にメモリは自動的に解放されているのでしょうか?
明示的に解放しないとだめですか?

374 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 03:21:27 ]
ここでいいのか不明なのですが…もし良ければおしえてください

やりたいことは
CarbonEmacs上にて起動したirbで
require 'rubygems'
を行いたい。です。

環境は
OSX10.4にてCarbonEmacs2008春版を使用しています。
rubyはMacPortsからインストールしたものを使用し、
rubygemsもMacPortsからインストールしました。

375 名前:374 mailto:sage [2008/05/02(金) 03:23:56 ]
以下Terminal.appから実行した結果です
/Users/hoge% uname -a
Darwin hoge.local 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386
/Users/hoge% ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-darwin8.11.1]
/Users/hoge% which ruby
/opt/local/bin/ruby
/Users/hoge% gem -v
1.1.1
/Users/hoge% which gem
/opt/local/bin/gem
/Users/hoge% echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
/Users/hoge% irb
irb(main):001:0> puts $:
/opt/local/lib/ruby/site_ruby/1.8
/opt/local/lib/ruby/site_ruby/1.8/i686-darwin8.11.1
/opt/local/lib/ruby/site_ruby
/opt/local/lib/ruby/vendor_ruby/1.8
/opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin8.11.1
/opt/local/lib/ruby/vendor_ruby
/opt/local/lib/ruby/1.8
/opt/local/lib/ruby/1.8/i686-darwin8.11.1
.
=> nil
irb(main):002:0> require 'rubygems'
=> false
--------
rubygemsをrequireしてもエラーになりません。
(.irbrcにてrequire済なので再読み込みはしませんが)


376 名前:374 mailto:sage [2008/05/02(金) 03:25:02 ]
対してCarbonEmacs上のrun-rubyにて起動したirbでの実行結果です
irb(main):001:0> puts $:
/usr/lib/ruby/site_ruby/1.8
/usr/lib/ruby/site_ruby/1.8/powerpc-darwin8.0
/usr/lib/ruby/site_ruby/1.8/universal-darwin8.0
/usr/lib/ruby/site_ruby
/usr/lib/ruby/1.8
/usr/lib/ruby/1.8/powerpc-darwin8.0
/usr/lib/ruby/1.8/universal-darwin8.0
.
nil
irb(main):002:0> requrie 'rubygems'
NoMethodError: undefined method `requrie' for main:Object
from (irb):2
--------
実行時のパスが異なるようです
どのようにしたら、この問題を解消できるでしょうか。

377 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 03:33:48 ]
うん、そのtypoは俺もよくやるよ

378 名前:374 mailto:sage [2008/05/02(金) 03:52:32 ]
>>377
まちがえました…ご指摘ありがとうございます
typoしなくても以下の通りです

irb(main):001:0>
No such file to load -- rubygems
from (irb):1:in `require'
from (irb):1


379 名前:デフォルトの名無しさん [2008/05/02(金) 05:40:38 ]
>>366
オブジェクトが参照なのと、引数の参照渡しを一緒にスンナ
何が「すべて参照渡しと言ってもいいくらい」だ

380 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:10:57 ]
「参照の値渡し」とか「オブジェクト渡し」とか言われる形態だな

381 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 14:35:21 ]
>>378
FinderからではなくTerminal上で open -a Emacs とする、
もしくは .emacsに irb の位置をフルパスで指定する、のどちらか。

後者なら、~/.emacsなどに
(setq ruby-program-name "/opt/local/bin/irb")
と書けばいいと思う。たぶん。


382 名前:デフォルトの名無しさん [2008/05/02(金) 15:43:21 ]
TechCrunch Japanese アーカイブ ? Twitter、Ruby on Railsを放棄か
ttp://b.hatena.ne.jp/entry/jp.techcrunch.com/archives/20080501twitter-said-to-be-abandoning-ruby-on-rails/



383 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:21:49 ]
Emacs から info で Ruby のマニュアルを調べたいと考えているのですが、
現在、配布されているドキュメントは html 形式のみですよね

Ruby 1.4 の時に配布されていた info
ruby-texi-1.4.tar.gz
も、ネット上のどこにも落ちていない…

384 名前:374 mailto:sage [2008/05/03(土) 00:25:29 ]
>>378
感謝です。おっしゃるとおりでした。
後者も有効です。

385 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:38:08 ]
Rubyに抽象メソッドって無いの?

386 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:14:12 ]
>>385
実行前に実装を強制させる仕組みはない。

定義してなければ呼んだときにmethod_missingが呼ばれる。
あとは
スーパークラスで抽象メソッドにしたいメソッドを定義して
raise NotImplementedError
するとか
inheritedフックを使って、継承した時点でチェックするとか。


387 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:31:01 ]
>>386
Class#inheritedがよさげです
ありがとうござました

388 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:45:07 ]
inheritedって class Hoge < Moge の中を実行する前に呼ばれてるような。


389 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:45:28 ]
どうしてruby使ってるの?
pythonでなくてrubyを使う理由って何でしょう?
日本人が作ったのが誇らしいとかですか????

390 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:50:50 ]
?が2個以上連続しているレスは釣り

391 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:15:38 ]
Ruby 初心者スレッド Part 18
pc11.2ch.net/test/read.cgi/tech/1203658291/623

623 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/24(月) 14:34:59
どうしてrubyなの?
実績も何も無い言語ですよね
pythonじゃなくてrubyを使う理由を一つでもいいから教えてください
開発者が日本人なのが誇らしいとか??????

392 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:18:17 ]
>>389
どうして日本語使ってるの?
英語でなく日本語使う理由って何でしょう?
日本人が作ったのが誇らしいからですか????



393 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:11:30 ]
イエス!ジャパニーズ!
ノー!フューチャー!

394 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 02:41:51 ]
pythonはopen classじゃないとかいろいろめんどい

openclassはちゃんとしたアプリがつくれない、って言われてるけど
その通りだと思う。でもスクリプト(笑)言語でちゃんとしたアプリは
作らないから問題ない。

395 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 07:31:41 ]
式と文や、メソッドと属性なんかが分かれてるのが気に入らない。

396 名前:デフォルトの名無しさん [2008/05/04(日) 11:46:23 ]
クラス内部でしか使わないサブルーチンのようなメソッド定義ってできますか?
たとえば、
class Hoge
def a(int1, int2)
return int1+int2*int2
end

def self.b(int)
p a(3, int)
end
end

Hoge.b(5)

の様には書けないんでしょうか。
classとselfとHogeを外すと正常に動作するんですが。

397 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 11:55:54 ]
Pythonは「メソッド=メソッドオブジェクトが入った属性」な感じ?
メソッド側に属性を統一するのがRuby流で
属性側にメソッドを統一するのがPythonって思ってる。

俺の場合はlambdaの使い難さで使わないけどな。>>Python
文が書けないし、構文自体が無茶になるから
結局、一時的な関数内関数を書きまくることに。

398 名前:デフォルトの名無しさん [2008/05/04(日) 11:58:13 ]
aをselfしてprivateに指定するんでしょうか?


399 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 12:03:11 ]
>>396
クラスメソッドとインスタンスメソッドと特異メソッドの勉強が必要

400 名前:デフォルトの名無しさん [2008/05/04(日) 12:06:21 ]
観念的なのは10冊くらい読んだのですが、結局、よくわからんのです。
実際の挙動というか、メモリ上の状態を記述しているような
説明がないので。
一応、インスタンスはコピーという感じで良いんでしょうか。
クラスと特異の実際の状態が掴めないのでよく解りません。


401 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 12:17:25 ]
>>400
中田育男先生の
コンパイラの構成と最適化 お勧め

402 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 12:20:51 ]
つprivate_class_method



403 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 12:34:20 ]
>>396
self.bの定義の中ではselfは(挿入されている特異クラスはさておき)
Hogeというクラスそのものなわけだが、このとき(レシーバを
省略した)aの呼び出しでも、当然レシーバはself(=Hogeクラス)
になる。



404 名前:デフォルトの名無しさん [2008/05/04(日) 13:04:58 ]
>>400
この辺はじっそうによるからなあ。
コード書いてみて、実験したりして挙動を確かめる方が身につくよ。
本も大事だけどさ
コード書かないで理解は無理だべさ






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

前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