心はいつもAirPucci (空元気でもいいから)

毎日がPucciを着ているような気分

パーフェクトRuby 2章Rubyの基礎 2-1 Hello,Ruby

   


12章から5章まではPart2 Ruby言語仕様 です。
2章 Rubyの基礎

メソッドは、
def
メソッド名(引数)
 処理
end
形式で書く。

def hello(names)
  names.each do |name|
    puts "Hello, #{name.upcase}"
  end
end

jojos = ["Jonathan", "Joseph", "Jotaro", "Jorin"]

hello(jojos)

#=>
Hello, JONATHAN
Hello, JOSEPH
Hello, JOTARO
Hello, JORIN

これ、クラスじゃなくて手続き型で書いていますね。どっちもできるのがRuby。

nameのところはnamesの配列が最初から一つづつeachで渡されるんですが、nameじゃなくて適当な変数名でいい。けど、入力の配列名を複数形にして、eachで回す変数をその単数系にするっていうのがお約束っぽい。

p44
レシーバ.メソッド名。
names.eachではnamesがレシーバでeachがメソッド名。

変数namesをレシーバとしてeachメソッドを呼び出している。

p each.classってやるとエラーになった。だからeachはメソッドだってば。ではどのクラスに属するメソッド?
=>後で調べるため自分のisuueに書いた。

p45
2-1-3 トップレベル

手続き型でいきなりdefって書いて実行できるのがきもちわるいなーと思ったのですが(だって作業領域をいつ確保してるのさ?って思いました)理由が書いてありました。

hello(jojos)とレシーバ無しで読み出していますが、これは”クラス”や”モジュール”以外であって(まあ、そうです)、”トップレベル”という。

トップレベルで定義されたメソッドは、グローバルなサブルーチンのように使用することができ、以下のような特徴を持っています。
・メソッド呼び出しの際、レシーバを記述しない
・いわゆる関数のように、どこからでもグローバルに呼び出す事ができる

2-1-4 メソッド定義と戻り値

Rubyでは最後に評価された値が戻り値になる。returnを書く必要はない。

p46
逆にreturnを書くとそれが戻り値になり、最後に評価された値は戻らない。

def rvalue(a, b)
return a + b
puts “計算しました”
end

rvalue(1,100) #=>101

これは、return後が実行されないのか、わからないな。

次、2-1 変数と定数

 - テクニカル ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

WindowsキーボードをMacで使う

キーボード難民です。Mac miniでApple純正のキーボードを使っていました …

no image
データベースのリファクタリング?

ruby on rails3プリケーションプログラミングの本の内容をruby2. …

no image
RailsTutorial4.0を高速で復習する。3.5章。最後の問題。

3.5演習、3もんめ、最後の問題です。 3.(上級者向け)「Heroku pag …

Railsを立ち上げる

RubyのアップデートとRailsのインストールが無事終わったので、いよいよRa …

no image
WindowsのiTunesからMacのiTunesへのデータ移行

MacBookAir 2日め。なかなかMacにふみきれなかったのは、Window …

RailsTutorial4.0を高速で復習する。7章

第7章ユーザー登録、です。 6章でuserモデルを作ったので、7章はwebでの登 …

no image
RailsTutorial4.0を高速で復習する。6.5章。

演習1問目。 リスト6.20の、メールアドレスを小文字に変換するコードに対するテ …

WordPressの管理画面真っ白問題に対処しました

WordPressの自作テンプレを作ったはいいものの、管理画面が真っ白になって投 …

no image
RailsTutorial4.0を高速で復習する。7.1.2章

7.1.2ユーザーリソース、です。 /user/newを/signupで表示させ …

no image
RailsTutorial4.0を高速で復習する。3.2.2章。

静的ページにaboutというページを追加するのですが、rails gを先にするの …