心はいつも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

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

  関連記事

no image
gamilアカウントが乗っ取られました

朝起きてすぐ行うメール確認。iphoneでgmail接続できないってエラーが出る …

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

テストコードが長くなったからリファクタリングするかも、、といいながら、静的ページ …

実機なしでRetina 3.5インチのスクリーンショットを撮る

iPhoneアプリ公開時に2種類の画像登録が必要です。 1つ目はアイコン。アプリ …

no image
iPhoneのKindleアプリでChip Conley氏の本を読んでみました。その1

GWで電子本も文庫本も読み終え、「新しい本に入れ替えないと~」と思いながらすっか …

no image
editとupdate

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

no image
RailsTutorial4.0を高速で復習する。4章と4.1章。

さて、4章です。4章ではRubyに関する内容が多かったような記憶が。 動的なWe …

no image
Mac OS Xでftp × Cyberduck

WordPressにプラグインを入れたくてダウンロードしてきました。 そういえば …

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

3.3.2タイトルのテストをパスさせる。です。 ひとまず、静的ページをhtmlの …

Macにコマンドラインツールをインストールする

Mac miniのメモリが16Mになったので、気分も新たに、Ruby on Ra …

初めてのRuby8章 8.4特異メソッドと特異クラス

特異メソッドと特異クラス プログラムなんて、クラスの継承だけで書けてしまうのが良 …