第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Ruby 的方法

Ruby 提供了一種組織代碼并重用的功能,它可以讓我們無需創(chuàng)建冗長的 Ruby 代碼,在需要它們的時候才會使用它們。對于方法,您只需要學會方法的聲明、調用以及傳參即可。在本章中會為您詳細介紹方法的使用。

1. 聲明和調用Ruby方法

在 Ruby 中,我們使用def來聲明定義方法,def后面接加方法名,end作為方法的結尾。另外,我們使用方法名()的形式來調用方法,在大多數情況下,我們還可以省略這個括號。

讓我們編寫一個簡單的返回字符串的方法,然后調用這個方法。

實例:

def sayGoodnight
  result = "Goodnight"
  return result
end
# 該睡覺了~
puts sayGoodnight() # puts sayGoodnight 和此方法等效

# ---- 輸出結果 ----
Goodnight

解釋: 我們在上述代碼定義了一個sayGoodnight的方法,這個方法會返回一個字符串名叫“Goodnight”,sayGoodnight()調用了這個方法,然后我們又調用了puts方法,它會將結果打印出來,最后顯示的結果為GoodNight。

Ruby 的方法默認將最后一行作為返回值,所以我們甚至可以省略return。

實例:

def sayGoodnight
  "Goodnight"
end
puts sayGoodnight

# ---- 輸出結果 ----
Goodnight

解釋:sayGoodnight 方法里面的最后一行字符串作為此方法的返回值輸出出來。

2. 將參數傳遞給方法

2.1 一個參數的時候

讓我們來改進一下這個方法,可以傳遞一個名為name的參數。

實例:

def sayGoodnight(name)
  result = "Goodnight, " + name
  return result
end
# 該睡覺了~
puts sayGoodnight("John-Boy")

# ---- 輸出結果 ----
Goodnight, John-Boy

解釋: 我們在上個例子調整了sayGoodnight方法,使他可以傳遞一個參數name并打印出來,調用sayGoodnight這個方法的同時傳遞了一個字符串參數"John-Boy"。最后打印出來內容為:Goodnight,John-Boy。

注意事項: 在第 6 行 ,puts sayGoodnight("John-Boy")包含兩個方法調用,一個是sayGoodnight,另一個是puts 。 為什么一個方法調用在參數用括號括起來,而另一個沒有使用括號?這種情況,純粹是個人習慣問題。如果您過多省略括號,由于優(yōu)先級的問題會讓您很難知道哪個參數與哪個方法調用一起使用,因此,除了最簡單的情況外,我們建議在所有情況下都使用括號。

以下幾行都是等效的。

實例:

puts sayGoodnight "John-Boy" 
puts sayGoodnight("John-Boy") # 最推薦的寫法
puts(sayGoodnight "John-Boy") 
puts(sayGoodnight("John-Boy"))

2.2 多個參數的時候

需要傳遞多個參數的時候參數名用逗號分隔開。

實例:

def sayGoodnight(name1, name2)
  result = "Goodnight, " + name1 + ', ' + name2
  return result
end

puts sayGoodnight("John-Boy", "Alice-Girl")

# ---- 輸出結果 ----
Goodnight, John-Boy, Alice-Girl

Tips:Ruby方法返回的值是最后一個求值表達式的值,因此我們可以完全省略return。

實例:

def sayGoodnight(name1, name2)
  "Goodnight, " + name1 + ', ' + name2 # 方法的最后一行即為返回值
end

puts sayGoodnight("John-Boy", "Alice-Girl")

# ---- 輸出結果 ----
Goodnight, John-Boy, Alice-Girl

2.3 不確定參數個數的時候

當我們不確定參數的個數的時候,可以在參數前頭加上*來解決這個問題,這個參數會轉化成為一個數組Array)。

實例:

def sayGoodnight(*names)
  result = "Goodnight"
  names.each do |name|
     result += ', ' + name 
  end
  result # 返回值可以省略return
end

puts sayGoodnight("Andrew")
puts sayGoodnight("John-Boy", "Alice-Girl")

# ---- 輸出結果 ----
Goodnight, Andrew
Goodnight, John-Boy, Alice-Girl

3. 方法的別名

Ruby 允許對方法進行別名,從而創(chuàng)建具有不同名稱的方法的副本(盡管使用任何一個名稱調用該方法最終都會調用同一對象)。創(chuàng)建別名使用alias方法。

實例:

def multiply(val1, val2 )
  result = val1 * val2
  return result
end
alias docalc multiply
puts docalc( 10, 20 )
puts multiply( 10, 20 )

# ---- 輸出結果 ----
200
200

4. 小結

本章節(jié)我們學習了 Ruby 方法的調用和聲明,如何向方法傳遞單個、多個、不確定個參數,以及方法的別名。