Ruby 初心者スレッド Part 48

このエントリーをはてなブックマークに追加
912uy
質問です
これってバグですか?

class  O
    attr_accessor  :x
end
o  =  O.new

o.x  =  99

o.instance_eval  do
    p  x  #=>  99
    if  nil
        x  =  2  #  この記述があるとxがなぜかnilになる
    end
    p  x  #=>  nil
end
913デフォルトの名無しさん:2012/05/03(木) 20:23:12.11
頭のバグです
914uy:2012/05/03(木) 20:26:57.15
まじめに答えてほしいんですけど?
また今日もuyさんがコミットしてきてもいいですが、バグじゃなかったら恥ずかしいので聞いています
915uy:2012/05/03(木) 20:32:48.62
もういいやいってこよう
こんなスレしんでしまえ
916デフォルトの名無しさん:2012/05/03(木) 22:06:22.49
バグじゃないよ。最初の x と if nil 後の x は別物になっている。
よく知られたRubyの落とし穴の一つで、ローカル変数によるメソッド呼び出しの隠蔽。
しいて言えば仕様のバグだね。

o.instance_eval do
  p x #=> 99
  nil rescue x = 2
  p x #=> nil
  p self.x #=> 99
end
917デフォルトの名無しさん:2012/05/03(木) 22:15:29.20
独り言

def x() :method_x end
p x # => :method_x
1.times do
x = nil # ローカル変数のスコープ開始
p x # => nil
end # xのスコープ終了

p x # => :method_x

1.times do
x = 99 if false #代入は実行されないけど ローカル変数のスコープ開始
p x # => nil #存在してるけど中身が未定なのでnilが入っている
end # xのスコープ終了

p x # => :method_x
918デフォルトの名無しさん:2012/05/03(木) 22:20:55.79
なんの話?
919デフォルトの名無しさん:2012/05/03(木) 22:24:27.91
変数の宣言は静的に行なわれるという話かと思った
そういう解釈でいいのかな
920デフォルトの名無しさん:2012/05/03(木) 22:40:09.22
ピッケルにもさらっと書いてあった。2/e, p. 324

> Note that the assignment does not have to be executed -- Ruby just has to
> have seen it. This program does not raise an error.
>
> a = 1 if false; a

たぶんフラナガン本にも書いてあるんだろうなあ
JavaScriptでも似たようなこと起こるし
921デフォルトの名無しさん:2012/05/03(木) 23:28:41.02
1.times do
p local_variables # => [:x] #スコープ外だけどxも列挙されてる
x = 99 # ローカル変数xのスコープが始まる
p local_variables # => [:x]
end # ローカル変数xのスコープ終了

ローカル変数x がどこのブロックに属しているかは実行前のパース時に決定されているので
最初のp local_variables ですでにローカル変数xが存在することになってしまっている
アクセスすることはできないけど
922デフォルトの名無しさん:2012/05/03(木) 23:55:52.90
1.8と1.9で local_variables の結果が違うのよね
# o.instance_eval の最後に p local_variables を追加した結果
1.9.2 => [:x, :o]
1.8.7 => ["o"]
ちなみに p x がnilになるのはどっちも同じ
923デフォルトの名無しさん:2012/05/04(金) 04:00:14.09
1.8 の local_variables の動きはきっとバグ。

あと動的言語な利用者の視点からすると、宣言を兼ねた代入式(それが実行されるか否かによらず)より
前の local_variables で :x は列挙されるべきではないし、1.9 のように最初から列挙するなら逆に
ひとたび :x の存在が観測されたら、その時点から x はローカル変数へのアクセスになって nil を
返してくれるようになっていればもっと自然だった気はする。もちろん、宣言式が実行されない限り
ローカル変数が増えないのが一番自然なのだろうけどね。
924uy:2012/05/04(金) 05:56:17.36
俺としては、o.xを@xとかじゃなくてxでアクセスする手段が欲しかった
925デフォルトの名無しさん:2012/05/04(金) 06:48:32.28
def class; :a end # 通る
def self; :a end # syntax error

下はバグ?
シンボル以外にもいろいろある
予約語の中でも擬似変数だけ通らないみたい
926デフォルトの名無しさん:2012/05/04(金) 08:10:52.20
そんななんでもかんでもバグだバグだって

……
メソッド定義がシンボル1個だけの行だけのとき、SyntaxErrorになるな

irb> class C; def self; :a; end; end
SyntaxError: (irb):1: syntax error, unexpected ':'
irb> class C; def self; ; :a; end; end
=> nil
irb>

……うん、メソッド定義内部によるんじゃこれはバグって言っていいと思う
927デフォルトの名無しさん:2012/05/04(金) 08:14:26.54
>>924
後半は他言語の人なら解らんでもないが
Rubyにおける「o.x」と「oのインスタンス変数@x」は違うモノだぞ
o.x は「oのメソッド」でしかない
その処理内容は @x にアクセスしているかも知れんがね

attr系なんかを勘違いしてる人を結構見かけるが
あれは「公開フィールドを定義している」ワケではなく
「特定のインスタンス変数にアクセスするメソッドを楽に定義する方法」なだけだからな
928デフォルトの名無しさん:2012/05/04(金) 08:17:23.54
>>926
ありがと。やっぱバグか
他には括弧類([]とか)や%q()みたいな%リテラルも駄目みたい
929デフォルトの名無しさん:2012/05/04(金) 09:54:29.11
selfって名前のメソッドが定義できるのにびっくり
普通には呼べないけど
def self() :self end # メソッド定義できる
p send(:self) # => :self
def self;; :self2 end # これもメソッド定義できる
p send(:self) # => :self2

def self; :self end # syntax error, unexpected ':'
バグかもしれないけど
予約語のメソッドを定義することなんてあるのだろうか?

def if() :if end; p send(:if) #=> :if
def end() :end end; p send(:end) #=> :end
def class() :class end; p send(:end) #=> :class
def begin() :begin end; p send(:begin) #=> :begin
def if; :if2 end; p send(:if) #=> :if2
def end; :end2 end; p send(:end) #=> :end2
def class; :class2 end; p send(:class) #=> :class2
def begin; :begin2 end; p send(:begin) #=> :begin2
930デフォルトの名無しさん:2012/05/04(金) 10:10:50.69
>ttp://doc.ruby-lang.org/ja/1.9.3/doc/spec=2flexical.html
>また、def のあとやメソッド呼び出しの ピリオドのあとなどメソッド名であるとはっきり分かる場所では メソッド名として用いることができます。
とあるけど、ふつーはせんわな。
931デフォルトの名無しさん:2012/05/04(金) 10:15:49.41
class Object
def self
p :test # この行がなければ通る
self
end
end
[0, 1, 2, 3, 3, 2].group_by(&:self)

ちなみにMLでself定義するの見てこんな風に実験してたら気付いた
自分も普通は使わないと思う
932デフォルトの名無しさん:2012/05/04(金) 13:31:16.62
          __ノ)-'´ ̄ ̄`ー- 、_
        , '´  _. -‐'''"二ニニ=-`ヽ、
      /   /:::::; -‐''"        `ーノ
     /   /:::::/           \
     /    /::::::/          | | |  |
     |   |:::::/ /     |  | | | |  |
      |   |::/ / / |  | ||  | | ,ハ .| ,ハ|
      |   |/ / / /| ,ハノ| /|ノレ,ニ|ル' 
     |   |  | / / レ',二、レ′ ,ィイ|゙/   私は只の数ヲタなんかとは付き合わないわ。
.     |   \ ∠イ  ,イイ|    ,`-' |      頭が良くて数学が出来てかっこいい人。それが必要条件よ。
     |     l^,人|  ` `-'     ゝ  |        さらに Ann.of Math に論文書けば十分条件にもなるわよ。
      |      ` -'\       ー'  人          一番嫌いなのは論文数を増やすためにくだらない論文を書いて
    |        /(l     __/  ヽ、           良い論文の出版を遅らせるお馬鹿な人。
     |       (:::::`‐-、__  |::::`、     ヒニニヽ、         あなたの論文が Ann of Math に accept される確率は?
    |      / `‐-、::::::::::`‐-、::::\   /,ニニ、\            それとも最近は Inv. Math. の方が上かしら?
   |      |::::::::::::::::::|` -、:::::::,ヘ ̄|'、  ヒニ二、 \
.   |      /::::::::::::::::::|::::::::\/:::O`、::\   | '、   \
   |      /:::::::::::::::::::/:::::::::::::::::::::::::::::'、::::\ノ  ヽ、  |
  |      |:::::/:::::::::/:::::::::::::::::::::::::::::::::::'、',::::'、  /:\__/‐、
  |      |/:::::::::::/::::::::::::::::::::::::::::::::::O::| '、::| く::::::::::::: ̄|
   |     /_..-'´ ̄`ー-、:::::::::::::::::::::::::::::::::::|/:/`‐'::\;;;;;;;_|
   |    |/::::::::::::::::::::::\:::::::::::::::::::::::::::::|::/::::|::::/:::::::::::/
933デフォルトの名無しさん:2012/05/04(金) 13:52:27.42
メソッド名ってなんでもいいのか

self.class.class_eval do
define_method(:'a+b-c*d/e;'){ :foo }
end

p send(:'a+b-c*d/e;') # => :foo
934デフォルトの名無しさん:2012/05/04(金) 14:24:13.87
まあ、流石に呼ぶときに毎回sendは面倒いけどな
935デフォルトの名無しさん:2012/05/04(金) 14:30:02.00
空白が入っていても大丈夫だぞ
どうやっても普通には呼べないけど
936デフォルトの名無しさん:2012/05/04(金) 14:42:43.02
>ArgumentError: symbol string may not contain `\0'

本当に任意のバイト列でいいのかと256種類試してみたら\0だけ駄目なんだな
エラー内容からするとシンボルを使うことによる制限っぽいけど
937デフォルトの名無しさん:2012/05/04(金) 14:47:27.03
>>936
内部的にはC文字列か何かでやってんのかな?
Rubyのソース読み慣れてないからよく解らんが

むしろ今日思ったのはシンボル高性能過ぎワロタ
目的から考えても英数字と一部の記号だけで充分だろうに…
938デフォルトの名無しさん:2012/05/04(金) 23:22:33.57
ハッシュについての質問です。

楽天APIにリクエスト送ると
{"Body":{"ItemRanking":{"Items":{"Item":[{"pointRate":1,"shopOfTheYearFlag":0,〜(以下略)

みたいにネストされまくったJSONを返してくるので、ハッシュに変換し、
h = JSON[rak]
if h = h["Body"]
if h = h["ItemRanking"]
if h = h["Items"]
if h = h["Item"]
if h = h[0].to_hash
h = h["affiliateUrl"]
end
end
end
end
end
みたいにしてkey="affiliateUrl"の時のvalueを得ているのですが、
私は根本的にハッシュの使い方を勘違いしているのでしょうか。
もっと簡単に(一行で"affiliateUrl"キーにたどりつけるように)書けるはずだよなあと思うのですが。
939デフォルトの名無しさん:2012/05/04(金) 23:42:46.58
ネストされたコレクションなら仕方ない
Rubyのネストされた配列やネストされたHashは番地管理されている「多次元配列」ではないので、
ひとつずつオブジェクト取り出してnilでないことを確かめてメソッドで個別にアクセスするしかない

h = {'aaa' => {'bbb' => 'ccc' => {'ddd' => 'value'}}} から value 探すのを
ChildAccess.new(h)['aaa/bbb/ccc/ddd'] みたいに書けるライブラリがあったら便利かなあと思ったことはちらっとある
940デフォルトの名無しさん:2012/05/04(金) 23:54:50.46
response = "{"Body":{"ItemRanking":{"Items": ..."
json = JSON.parse(response)
url = json["Body"]["ItemRanking"]["Items"]["Item"][0]["affiliateUrl"] rescue nil
941938:2012/05/04(金) 23:59:43.29
ありがとうございます。
そういうものなのですね。
942938:2012/05/05(土) 00:02:21.08
>>940
おおっ!
JSONモジュールのドキュメント見ても
どうやって使うのかさっぱりわからなかったのですが
こういうことできるのですね!
ありがとうございます!
943デフォルトの名無しさん:2012/05/05(土) 00:36:10.88
php、javascriptでプログラミングを初めて1年くらいで、
オブジェクト指向を覚えるために最近になってrubyを触り始めました
他の言語はある程度触っていたため、rubyの文法や全てがオブジェクトであるという概念などはなんとなく把握できています

クラスとかメソッドとかpublic、privateがどういう動作をするものかということも理解できたのですが
自分で実際にこれらを使ってプログラミングに活かせているか自信がありません
githubなどで公開されているソースで、
オブジェクト指向・rubyどちらも初心者な人にも分かりやすいソースがあれば教えて下さい
944デフォルトの名無しさん:2012/05/05(土) 00:46:17.63
privateに関してはオブジェクト指向とはほとんど関係がなく、あくまで個々の言語の実装でしかない
だから、publicやprivate(やprotected)の使用に関して、なにか"オブジェクト思考"として気にする必要はない
クラスとメソッドとオブジェクト(=インスタンス)が普段使えるくらいにわかってればそれでいいんじゃないの
945デフォルトの名無しさん:2012/05/05(土) 00:48:54.70
さらっと嘘書くあたり只者じゃない
946デフォルトの名無しさん:2012/05/05(土) 00:51:38.78
>>945
オブジェクト指向とは関係ないって
どの言語でもただのアクセス制御だもの

きちんとオブジェクト指向で実装されてる例を知ってたら教えてくれ
947デフォルトの名無しさん:2012/05/05(土) 01:05:05.83
webrickのソース読めって記事は見たことがある。
948デフォルトの名無しさん:2012/05/05(土) 01:33:56.50
>>947
それには大事な前提条件がある

「普段からWEBrick使ってる人は」

WEbrickってなにそれ聞いたことない、というような人が読んでも糞構造の自己満ソース
949デフォルトの名無しさん:2012/05/05(土) 08:40:28.54
Rubyによるメタプログラミングの初期の実践例。
あれを糞構造の自己満とか言う奴はバカ。
950uy:2012/05/05(土) 09:40:22.28
WEbrickファイル数が多いんだけど
ファイルがメタプログラミング凄いのか教えてください
951uy:2012/05/05(土) 09:40:46.70
ファイルが

どのファイルが
952デフォルトの名無しさん:2012/05/05(土) 12:29:45.07
AAA周りのハンドラ実装をしようと思うんですが、mod_rubyやmod_mrubyはどうでしょうか?
まだ従来通り mod_perl で実装したほうがよさげでしょうか
953デフォルトの名無しさん:2012/05/05(土) 13:45:12.31
AAAってなぁに?
954デフォルトの名無しさん:2012/05/05(土) 15:18:36.04
mod_authen や mod_authez 周りのフックを実装したいのです
955デフォルトの名無しさん:2012/05/05(土) 17:39:18.13
module内の特異メソッドをincludeした場所で使えるようにさせる良い方法ってないのでしょうか?

module A
  class <<self
    def f
      p 1
    end
  end
end

A.f
include A
f # ここで呼び出したい
956デフォルトの名無しさん:2012/05/05(土) 17:43:31.64
rubyのメソッドの命名規則って何か代表的なものありませんか?
has_key?みたいに三人称単数があると思いきや、
equal?みたいなのもあったりで、記憶があやふやになりがち。
957デフォルトの名無しさん:2012/05/05(土) 17:45:20.45
それは「してはいけない」
ユーザーの利便性を上げていると見せかけて実際は物凄く下げている
素直にsetupとかなんか適当なメソッド作って呼んでもらえ
958デフォルトの名無しさん:2012/05/05(土) 17:46:38.13
なんで利便性下がるんだ?
そーいうのがあってもいいんじゃまいか
959デフォルトの名無しさん:2012/05/05(土) 17:53:12.55
>>956

真偽を判定するものについてでよいのかな。

* is を付けずに、 疑問符を付ける。
** has_key? と is_a? が例外。
** has_key? は key? で置き換えられたので今後は考慮しなくてよくなる予定。

コアライブラリ部分はそうなってるはず。
残念ながら、ActiveSupportみたいなサードパーティ製ライブラリは三単元の形になってることが多い。


960デフォルトの名無しさん:2012/05/05(土) 18:09:10.36
>>959

なるほど、たまたまhas_key?みたいな例外に気を止めてしまったみたいですね。
ありがとうございました。
961デフォルトの名無しさん:2012/05/05(土) 18:09:55.82
is_a? はそれ以上分解すると、オブジェクト指向用語としての「is-a関係」という言葉から乖離してしまうからだろうね
has_key? は is_xxx? と違って「レシーバ自体がキーか?」という意味ではないから key? ではなく
だからと言って has? だとキーと値、どっちを尋ねてるのか判らんからそういう名前だったんだと思う
結局 key? になったのは「レシーバ自体がキーかどうか訊く場面なんて無くね?」ってことなんじゃないかな
962デフォルトの名無しさん:2012/05/05(土) 18:20:27.42
>>957
require "dl/import"

module M
extend DL::Importer
extern "int func( void )"
# ...↓いっぱい関数
end

これを
M.func
とかじゃなくて

func で呼び出したかったんですよね
特に機能がなければevalでやるしかないかなぁ
963デフォルトの名無しさん:2012/05/05(土) 18:41:14.04
module_functionとかで工夫できないの?
964デフォルトの名無しさん:2012/05/05(土) 20:50:20.89
dl/import.rb を見ると @func_map とか @handler とかにライブラリの情報詰め込んでるから
func で呼び出しちゃうと M ではなく main オブジェクトの @func_map を読みに行って失敗すると思う
extern が返す DL::Function をうまく使って Kernel に define_method するように extern を上書きすると楽じゃない?
965962:2012/05/05(土) 22:22:29.08
もうevalでかいて動いたので
今回はそれでいくことにしました
レスありがとうざいます
966デフォルトの名無しさん:2012/05/06(日) 02:13:56.59
すいません。いままでずっとわからなったんですが
def self.[]のself.[]
とういう表示ってどういう意味なんですか?僕はつかわないんで
読み飛ばしてました。
よろしくお願いします。
967デフォルトの名無しさん:2012/05/06(日) 02:54:51.51
>>966
class記述中の話だとすれば、そのselfは作成中のクラスそのものを表すので
クラス自身に[]というメソッドを定義するということになる

もしclass文の外やdef記述中の表記なら
状況限定でそのインスタンス自身に[]を定義することになるが…あまり見たことがないな
968デフォルトの名無しさん:2012/05/07(月) 07:35:01.78
1/2(50%)で分岐したいときの綺麗で簡単な書き方とかってありますか?
自分は
if rand(2) != 0
#処理
end
とかでやっているんですが他にいい書き方があれば教えてください
969デフォルトの名無しさん:2012/05/07(月) 08:27:20.90
書き方としては特にない
技巧的に書いても読みにくいんじゃ仕方あんめえ
あとなにもなければ肯定で書いて欲しい
if rand(2) == 0
970uy:2012/05/07(月) 08:40:00.02
ゲームじゃなかったらスルーしていいけど
ifが0でもtrueだからゲーム系ではちょっと戸惑う箇所
俺様だったら頻繁に使う場合true_rand,false_randとかってメソッド定義するわ
971デフォルトの名無しさん:2012/05/07(月) 09:21:34.49
>>968
綺麗簡単てわけじゃ無いけどこんな方法もあるって事で

table = [
proc { "0の時に実行する処理" },
method('1の時に呼び出すメソッド'),
]
table[rand(2)].call

def event_0 ; ... ; end
def event_1 ; ... ; end
method('event_%d'%rand(2)).call

def event_hoge ; ... ; end
def ev_hage ; ... ; end
table = [:event_hoge,:ev_hage]
method(table[rand(2)]).call
972デフォルトの名無しさん:2012/05/07(月) 09:58:09.84
読みやすさ考えるなら適当に関数定義して
if coin()とかif percent(50)とか書けると素直に読めていいよね

>>971の亜種で
event = [ 処理A, 処理B, 処理C, … ]
event.sample.call
とか。3つ以上の処理を等確率で実行したい場合に
event[rand(event.length)]って書かずに済む
973デフォルトの名無しさん:2012/05/07(月) 10:43:47.56
if [true, false].sample
はまあキザっぽいとは思う。
974デフォルトの名無しさん:2012/05/07(月) 11:53:56.40
>>969-973
みなさんありがとうございます。
1/2の分岐だけでもいろんな書き方があるんですね。
初心者な者で勉強になります。
いろいろ調べると>>969さんが言うように否定形は良くないみたいなので
今後は肯定形で書いていこうと思います。
975デフォルトの名無しさん:2012/05/08(火) 01:06:29.79
一定の確率で分岐するならrand使うのが一般的だからそれで良い。
976デフォルトの名無しさん:2012/05/08(火) 09:34:40.09
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
だと、何のメッセージもなくプロンプトが戻ってきます。

homeの下に.rvmも出来てないし、rvmってどうインストールするんじゃ?
977デフォルトの名無しさん:2012/05/08(火) 09:48:56.36
いろいろ事前知識があること前提だよなあと思う

>>976
その URL に実際にアクセスするとコメントがあるが、その URL は古い
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
ttps://rvm.io/rvm/install/ で説明されてる get.rvm.io は上記の github にリダイレクトされるので実行される bash スクリプトは同じ
978デフォルトの名無しさん:2012/05/08(火) 11:40:11.82
rubyで、Enumerable#grep()の逆を行うにはどうしたらいいですか。
つまりある正規表現に一致しないものを選びたい場合です。
正規表現に否定があれば話が簡単なのですが。
979デフォルトの名無しさん:2012/05/08(火) 11:51:44.15
頭使わないで思いついたのは reject

p %w(apple orange melon).reject{|e| (/a/ === e)}
["melon"]

うむ、なんか grep にくらべてこうなんかちょっと外見がイマイチっすな

reject の別名なんだっけ
reject だけ無いんだっけ?
980デフォルトの名無しさん:2012/05/08(火) 13:31:59.30
正規表現のいろいろな罠は知ってるという前提でいろいろはしょるけど、
Rubyの正規表現には否定先読みがあるよ。
981デフォルトの名無しさん:2012/05/08(火) 16:53:41.65
p %w(apple orange melon).grep(->x{/a/ !~ x})
p %w(apple orange melon).grep(/a/.method(:'!~').to_proc)
p %w(apple orange melon).select(&/a/.method(:'!~'))
p %w(apple orange melon).reject(&/a/.method(:=~))
p %w(apple orange melon).reject{|x|/a/ =~ x}

普通のrejectでいいんじゃね?
982デフォルトの名無しさん:2012/05/08(火) 17:18:08.89
否定先読みで任意の単語が含まれない表現は出来るけど
面倒くさいし、読みにくい

p %w(apple orange melon).grep(/\A((?!a).)+\z/m)
983uy:2012/05/08(火) 21:24:46.29
a=%w(apple orange melon)
p a-a.grep(/a/)
984デフォルトの名無しさん:2012/05/08(火) 21:32:11.00
回りくどいことしないでreject使え。
慣れの問題
985デフォルトの名無しさん:2012/05/08(火) 21:49:41.22
見てくれはArrayだけど実はテキストファイルにマッピングされてて
arr << "hello"
とかやると即テキストに書き込まれるようなクラスって作れます?
Array.onchangeイベントハンドラみたいなのがあればいいんだけど。
986デフォルトの名無しさん:2012/05/08(火) 21:58:35.41
>>985
メソッド上書きすれば?
class MyArray < Array
def initialize(textfile) ; @textfile = textfile ; end
def <<(s)
File.open(@textfile,'a'){|f| f.write(s) }
super
end
end
arr = MyArray.new('hoge.txt')
arr << 'hello world'
987デフォルトの名無しさん:2012/05/08(火) 23:12:50.33
[]= あたりのデータのずらしが発生するやつは面倒かな。
988デフォルトの名無しさん:2012/05/09(水) 00:16:34.95
http://melborne.github.com/2009/04/11/Ruby-5/
このページの一番上のコードにある
6.+(2) # => 8
の6の直後のドットは何者なんでしょうか?演算子?
989uy:2012/05/09(水) 00:47:22.66
Rubyまたバグかよ
バギーすぎて使い物にならねーぞ
990デフォルトの名無しさん:2012/05/09(水) 00:54:48.53
バギクロスw
991デフォルトの名無しさん:2012/05/09(水) 01:06:42.78
>>988
1から勉強し直せば分かるよ
992デフォルトの名無しさん:2012/05/09(水) 01:09:31.70
>>988
そのページに書いてある通りじゃないか
993デフォルトの名無しさん:2012/05/09(水) 02:01:29.03
>>988

six = 6
six.+(2) #=> 8 なら分かる?

それでもダメなら six.add(2) #=> 8 は?
994デフォルトの名無しさん:2012/05/09(水) 02:01:47.58
あ、addというメソッドがあるわけではないです。
995デフォルトの名無しさん:2012/05/09(水) 05:21:38.60
次スレ
Ruby 初心者スレッド Part 49
http://toro.2ch.net/test/read.cgi/tech/1336507487/
996デフォルトの名無しさん:2012/05/09(水) 05:50:05.70
うめ
997デフォルトの名無しさん:2012/05/09(水) 08:06:16.67
z
998デフォルトの名無しさん:2012/05/09(水) 08:07:39.33
:::::::::::::::::::::::::::::::::  _____/へ、__  ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::: 「 l::::::ヽ-、__;::ゝ-──-- 、..,,_ ::::::::::::::::::::::::::::::::::::
    _________   | l:::;:ゝ''"            `ヽ、 :::::::::::::::::::::::::
  ヽ !.‐┼‐ !  //:7                  `ヽ. :::::::::::::::::
  7 lΞ|Ξl .う ::::i-、_,.ゝへr-、____,.ィ_へノ        ', ::::::::::::::
  ).  ‐┼‐   「へ_r'‐-、_'r‐へ__,.-'"ヽ_「´ヽイ-、     i :::::::::::::
 ⌒`''ー─‐' ん i/´  .7   ハ   ,  , 、  ヽ.`'ー、__7、_| ::::::::::::
   /\     イ イ  ノヽ!、 .ハ /|  ハ ,:!イカ   ヽ._」、_イ :::::::::::
 /──\. め '  レ,イ:,rt=ゝ;、V:::! /;イ-=t!、:::!    ',____7、 :::::
  | ̄|| ̄|    レ'  .ハ弋__r!:::::::レ':::弋__rリノ::! ! ハノ !、___> ::::
 .  ̄ | ー'  い イY / ! "           ""/レ'V     | :::::::::::::
  ヽ __マ_    /  ! 人   、_________,.  〈/  |.   ハ :::::::::::
  7 |‐┼‐| ど 〈  !   !>.、 ` ー‐' _,,.イ/ ./イ     〉 ::::::::
  ) .ノ‐┼‐,!   .ノレヘ! ノイ<、__`'7=ニ7´/ rレ'V、 ハ/ V  iヽ. ::
 ⌒`''ー─‐' お、  !ィレ'イ  ヽ/ムヽ、/」  、/`ヽ( ::::: /::::::ヽ
  ! ,'⌒ヽ. /::::ヽ、//)、r、_rン Y(ハ_r、_(\!    ヽ./::::::::::::
  レ'   ! ./:::::::::: !,イ  '─---、)Y ,.-─‐-' `ヽ.    i::::::::::::::::::
    __.ノ ::::::::::: ハ   -‐=='、ハ `,==‐-   i.  ,.、〉、::::::::::::::
999デフォルトの名無しさん:2012/05/09(水) 08:09:32.84

        ,,.. -──-- 、.,_
     ,. '"::::::::::::::::::::::::::::::::::::`ヽ.
     ,.':::::::::::::::::;::::::::::::::::::::::::::::::::::ヽ.
   /__二ニ=-ハ::::::i:::__i_::::::、::::::::::::',
   /:::/::::::ハ::::::! !::::ハ::__!_::::::::';:::::::::::i
   i::::i:::::/!:,!ニ、! L:! ',.‐;.、ヽ!::::i:::::::::::|
   |::::!:::ハ i' i'`!    ト r! ' !__」::::::i:::|
  └-iヽ::! ゞ' ,     `''´,,, |::::!::::::::|:::|
     .|::::7"   r─、    .レi::::::::::|:::|
    レ'iゝ、   ヽ.__」   ,イ:::|::::::i::::|::::|
      !::::!::i:>ー-r   i;:-!::::|::::::|::::|::::|
       |::::|::::::rイ´!__/  |::::ト.、::|::::|::::|
       |::::|>'´}><{.、  |::::|/ヽ:::|::::|
      !ヘ|ヽ、/_」L_ゝ `ヽレ'   ';:|:::::|
      !/ !/  oio     i     ';::::::|    
     /  r/'⌒i       !.     ヽ::::!
    / ,-rイ、___,ノ._     ハ       \!
    !/ | l ,ィ'l |o     _,.!',      `'r、
     |. | l'´::::l |<{_____,.イ'" ヽ::',      //、!
    ゝ、ヽヽ-'ハ_____,,.ハ__,.イヽ;\   //っ )
     !::7'ー´:::!:::::::::::::!::::::::::::::::ヽ;:`Y´「T´
      |:/:::::/:::::!::::::::::::::!::::::::::::::::::::ヽ;:!::::!::|
1000uy:2012/05/09(水) 08:10:14.90


                     三     さ
            ,.-‐-、      Ξ  バ  て
  ,.-─-、     /    !       三  グ  `
 /    i ',__,,,,.....i i    |       Ξ  が  ま
 i    /、_,!::::::::::::'-'、___,.ノ、     三  で  た
 ヽ、__,./   ;::::i::::;:::;:  :;::::::ヽ. ×  Ξ  た  R
× ,.イ::::/:::::レ::ハ:!、!__,.ハ::ル:::::',  × 三  訳. U
   レ::::::レ:'r‐'i´ レ',!'-'、。o:::::::::ヽ   Ξ  だ. B
   ハ::o。!'⌒     " ハ:::ハ::::,.-'、. 三  が  Y
   .゜i:::::7"  i' ̄`i  /:::!::::::::/ @i  彡     の
    イ:::人  ヽ ノ  i::::ハ::::/  /、  / 川 l | l l | l |
    V::ハ::>ー-r‐='T´V,.イ  ー、/`ヽ
 ×     ` ,.く,.〈〉、_,.イ ヽ、___ノ、/ノ
   ×    r〈 !     ヽ、___二ン
        7ヽイ__,.'-っ、  〈 ,,..
       〈  ̄    ノ 、 `ヽ ゛
        `ー7''" ̄´   ヽ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。