Ruby 程式設計/編寫方法
外觀
方法定義以 def 關鍵字開始,以 end 關鍵字結束。一些程式設計師發現 Ruby 中的方法定義符號非常類似於 Python 的符號。
def myMethod
end
要定義一個帶引數的方法,可以在方法名後面的小括號中放入變數名。當方法被呼叫時,方法中的程式碼將在一個名為指定引數的區域性變數中執行。
def myMethod(msg)
puts msg
end
如果需要多個引數,可以使用逗號分隔。
def myMethod(msg, person)
puts "Hi, my name is " + person + ". Some information about myself: " + msg
end
您可以使用或不使用括號呼叫方法,儘管省略括號可能被認為是不好的風格,因此安全的方法是在一開始始終使用括號,直到您知道何時可以省略它們。
# With parentheses
myMethod()
# Without parentheses
myMethod
如果要使用引數呼叫方法,則需要將引數放在括號內(或者如果您省略了括號,則放在“無形”括號內),並且如果有多個引數,則用逗號分隔。
def myMethod(a, b)
puts a + b
end
myMethod(1, 2)
myMethod 1, 2
myMethod("abc", "xyz")
您也可以使用變數的值作為引數。
def myMethod(a)
puts "Hello " + a
end
name = "World"
myMethod(name)
通常,方法可能具有許多(如果不是全部)引數,這些引數可能具有巧妙的預設值。每次呼叫方法時都必須指定所有引數可能很麻煩。因此,可以定義預設值。這實際上非常容易;只需在定義中為引數賦值即可。您可以組合有和沒有預設值的引數。
def myMethod(message="This is a default value")
puts message
end
myMethod()
myMethod("Where has the default value gone?")
您通常希望方法返回一個值。您可以使用return語句來實現。
def myMethod
return "Hello"
end
puts myMethod()
但是,因為 Ruby 開發者很懶,他們開發了一個總是返回最後一個求值語句的功能(有時很難知道哪個語句是最後一個)。瞭解這一點,您可以將上面的示例改為以下示例
def myMethod
"Hello"
end
puts myMethod()
注意,一個return語句將結束方法的執行。結合您可以不返回值返回這一事實,這在某些條件滿足時停止方法進一步執行通常很有用。
def myMethod
while true
puts "Because the condition of this while loop is 'true' it will run forever, right?"
return
end
end
此頁面只是為了簡單介紹如何在 Ruby 中使用方法,因為這是一個非常重要的概念。但是,有一個關於方法以及這裡未提及的一些其他很酷功能的 更詳細的頁面。