Ruby中的方法(函數(shù))學(xué)習(xí)總結(jié)
1、Ruby中方法名和變量名的命名規(guī)則一樣(以小寫字母開頭,單詞之間的分隔使用“_”,),不過可以在方法名后邊帶上?。ㄖ匕醴椒ǎ┗蛘??(布爾類型返回值)。
2、方法的參數(shù)請使用(),參數(shù)都是局部變量,可以為這些參數(shù)設(shè)置默認(rèn)值,帶“*”的參數(shù)是可選動態(tài)參數(shù),可以傳入一個或者多個,如果有普通參數(shù),也有可選參數(shù),可選參數(shù)要放在最后,如下邊示例代碼。
def read_book(chinese='水滸傳',english='Jane Eyre',*others)
puts "中文書籍:#{chinese},English book:#{english}"
temp=''
others.each do |o|
temp<<o<<' '
end
puts "其他可選書籍:#{temp}"
end
read_book
# 輸出:中文書籍:水滸傳,English book:Jane Eyre
read_book('西游記','Rails','紅樓夢','三國演義','封神演義','隋唐演義')
# 輸出:
# 中文書籍:西游記,English book:Rails
# 其他可選書籍:紅樓夢 三國演義 封神演義 隋唐演義
3、方法的返回值不需要進行聲明,默認(rèn)情況下最后一行代碼為返回值,但是若有條件判斷返回的情況,需要用return聲明,如下示例代碼:
def late_for_work?(minutes)
return true if minutes>=15
false
end
late_for_work?(10) #false
late_for_work?(15) #true
4、重磅方法是指方法名后帶“!”的方法,普通方法返回的是原對象的一個拷貝,而重磅方法返回的始終是原對象本身,如下邊示例代碼:
x='hello'
y=x.upcase
puts "x:#{x},y:#{y}" #輸出:x:hello,y:HELLO x的值未發(fā)生改變
x='hello'
y=x.upcase!
puts "x:#{x},y:#{y}" #輸出:x:HELLO,y:HELLO x的值已經(jīng)發(fā)生改變
5、方法中可以使用別名關(guān)鍵字“alias”生成方法的一個拷貝,即使原方法發(fā)生了變化,別名拷貝也不會發(fā)生變化,如下示例代碼:
def show_alias
puts 'Before alias!'
end
alias alias_foo show_alias
def show_alias
puts 'After alias!'
end
show_alias #輸出:After alias!
alias_foo #輸出:Before alias!
6、Ruby的方法可以一次性返回多個值,不過實質(zhì)上只是表面看來是返回多個值,本質(zhì)上是返回了一個數(shù)組,數(shù)組中存儲多個返回值,接收時可以直接定義多個變量一次性接收,如下示例代碼:
def more_result_foo
x=5
y=x*x
z=y-x+2
return x,y,z #返回x,y,z三個值
end
a,b,c=more_result_foo #a,b,c接收返回的x,y,z
m=more_result_foo #m接收返回的x,y,z
puts a,b,c #輸出:5 25 22
puts m #輸出:5 25 22
puts m.class #輸出:Array
相關(guān)文章
Luhn算法學(xué)習(xí)及其Ruby版實現(xiàn)代碼示例
Luhn算法主要北用來進行數(shù)字驗證,尤其是卡號身份證號等,這里我們就來看一下Luhn算法學(xué)習(xí)及其Ruby版實現(xiàn)代碼示例:2016-05-05Ruby簡潔學(xué)習(xí)筆記(二):類繼承、屬性、類變量
這篇文章主要介紹了Ruby簡潔學(xué)習(xí)筆記(二):類繼承、屬性、類變量,本文是個人學(xué)習(xí)總結(jié)第二篇,需要的朋友可以參考下2015-01-01詳解Ruby on Rails中的mailer相關(guān)使用
這篇文章主要介紹了詳解Ruby on Rails中的mailer相關(guān)使用,主要針對其相關(guān)的編程風(fēng)格給出建議,需要的朋友可以參考下2015-08-08Ruby配置rspec和RestClient來檢測服務(wù)器
這篇文章主要介紹了Ruby配置rspec和RestClient來檢測服務(wù)器的方法,包括JSON文件的相關(guān)配置,需要的朋友可以參考下2015-07-07Ruby 之 class 中的 private、 protected、public
Ruby 之 class 中的 private、 protected、public2009-11-11