Ruby方法
Ruby方法用於避免在程序中一次又一次地編寫相同的代碼。它是一組有返回值的表達式。
Ruby方法與其他編程語言中的函數類似。 方法用於將一個或多個可重複語句合併成一個單獨的包。
定義方法
要使用方法,需要先定義它。 Ruby方法是用def
關鍵字開始,後跟方法名稱定義的。最後還需要使用end
關鍵字來表示方法定義結束。
方法名稱應始終以小寫字母開頭。 否則,可能被誤解爲常數。
語法:
def methodName
code...
end
示例:
#!/usr/bin/ruby
def method_defining(a1 = "Ruby", a2 = "Python")
puts "The programming language is #{a1}"
puts "The programming language is #{a2}"
end
method_defining "C", "C++"
method_defining
執行上面代碼,得到以下結果 -
F:\worksp\ruby>ruby method_defining.rb
The programming language is C
The programming language is C++
The programming language is Ruby
The programming language is Python
F:\worksp\ruby>
在這裏,我們使用def
關鍵字定義了一個名稱爲:method_defining 的方法。 最後一行以end
關鍵字結束,表示完成了方法的定義。並通過以下兩行代碼調用方法 -
method_defining "C", "C++"
method_defining
從方法返回值
默認情況下,Ruby中的每個方法都有返回一個值。 這個返回的值將是最後一個語句的值。 例如 -
def my_method
i = 100
j = 10
k = 1
end
上面代碼中,最後方法的返回值是 1
。
Ruby return語句
ruby中的return
語句用於從Ruby方法返回一個或多個值。
語法
return [expr [`,'expr ...]]
如果給出兩個以上的表達式,則返回值是包含這些值的數組。 如果沒有給出表達式,將會返回nil
值。
示例
#!/usr/bin/ruby
def method
i = 100
j = 200
k = 300
return i, j, k
end
var = method
puts var
執行上面代碼,產生以下結果 -
100
200
300
可變參數數
假設聲明一個方法需要兩個參數,每當調用這個方法時,需要傳遞兩個參數。但是,Ruby允許您聲明使用可變數量參數的方法。 讓我們來看一下這個示例 -
#!/usr/bin/ruby
def sample (*test)
puts "The number of parameters is #{test.length}"
for i in 0...test.length
puts "The parameters are #{test[i]}"
end
end
sample "Maxsu", "6", "F"
sample "Mac", "38", "M", "MCA"
保存上面代碼到文件:var-number-of-parameters.rb,執行上面代碼,得到到如下結果 -
F:\worksp\ruby>ruby var-number-of-parameters.rb
The number of parameters is 3
The parameters are Maxsu
The parameters are 6
The parameters are F
The number of parameters is 4
The parameters are Mac
The parameters are 38
The parameters are M
The parameters are MCA
F:\worksp\ruby>
類方法
當方法在類定義之外定義時,默認情況下該方法被標記爲private
。 另一方面,默認情況下,類定義中定義的方法被標記爲public
。模塊的默認可見性和private
標記可以通過模塊的public
或private
更改。
Ruby給出一種不用實例化一個類就可以訪問一個方法。下面來看看看如何聲明和訪問類方法 -
class Accounts
def reading_charge
end
def Accounts.return_date
end
end
訪問類方法 -
Accounts.return_date