心はいつも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
RailsTutorial4.0を高速で復習する。9.2.3章。

9.2.3フレンドリーフォワーディング、です。 ログオンしていないユーザーが編集 …

Railsを立ち上げる

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

Mac miniの液晶モニターにDell U2713HM使っています。

次期モデルが出るかもしれないのにMac miniを買って、自分でメモリを16Gに …

OpneSSL,Readline,Libyamlをインストールする

先ほどインストールしたHomebrewを使って、rbenvをインストールしたいと …

no image
future vision 2019 vs 2010

マイクロソフトのfuture visonが話題らしい。 2019年の近未来。 情 …

no image
RailsTutorial4.0を高速で復習する。3.5章。つづき。

3.5演習の2もんめをやります。 2.お気付きの方もいると思いますが、リスト3. …

コンビニで切れないiPhone充電ケーブル買った

iPhone充電に使うライトニングケーブルって高いのに切れ易く涙目。 こんな感じ …

no image
MacBookAirで真央ちゃんのテレビ放映を見ました

テレビ持っていないを公言しています。 15年以上使っていたナショナル6型ブラウン …

no image
IBActionのIBって?

railsもやってますが、xcodeも再開しています。 ところで、 IBActi …

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

8.2.5ユーザー登録と同時にサインインする、です。 ユーザーが登録を行った後、 …