国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Ruby > 正文

Ruby中的函數(shù)總結(jié)

2020-02-24 15:29:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在Java開(kāi)發(fā)中,靜態(tài)語(yǔ)言是很難具有靈活性的,而就從動(dòng)態(tài)開(kāi)發(fā)來(lái)看,Ruby是很有優(yōu)勢(shì)的,下面就讓武林技術(shù)頻道帶大家一起來(lái)看看Ruby中的函數(shù)總結(jié)吧!

1、Ruby中方法名和變量名的命名規(guī)則一樣(以小寫(xiě)字母開(kāi)頭,單詞之間的分隔使用“_”,),不過(guò)可以在方法名后邊帶上!(重磅方法)或者?(布爾類(lèi)型返回值)。

2、方法的參數(shù)請(qǐng)使用(),參數(shù)都是局部變量,可以為這些參數(shù)設(shè)置默認(rèn)值,帶“*”的參數(shù)是可選動(dòng)態(tài)參數(shù),可以傳入一個(gè)或者多個(gè),如果有普通參數(shù),也有可選參數(shù),可選參數(shù)要放在最后,如下邊示例代碼。

?

復(fù)制代碼 代碼如下:

def read_book(chinese='水滸傳',english='Jane Eyre',*others)
? puts "中文書(shū)籍:#{chinese},English book:#{english}"
? temp=''
? others.each do |o|
??? temp<<o<<' '
? end
? puts "其他可選書(shū)籍:#{temp}"
?
end

?

read_book
# 輸出:中文書(shū)籍:水滸傳,English book:Jane Eyre
read_book('西游記','Rails','紅樓夢(mèng)','三國(guó)演義','封神演義','隋唐演義')
# 輸出:
# 中文書(shū)籍:西游記,English book:Rails
# 其他可選書(shū)籍:紅樓夢(mèng) 三國(guó)演義 封神演義 隋唐演義

?

3、方法的返回值不需要進(jìn)行聲明,默認(rèn)情況下最后一行代碼為返回值,但是若有條件判斷返回的情況,需要用return聲明,如下示例代碼:

?

復(fù)制代碼 代碼如下:

def late_for_work?(minutes)
? return true if minutes>=15
? false
end

?

late_for_work?(10)??? #false
late_for_work?(15)??? #true

?

4、重磅方法是指方法名后帶“!”的方法,普通方法返回的是原對(duì)象的一個(gè)拷貝,而重磅方法返回的始終是原對(duì)象本身,如下邊示例代碼:

?

復(fù)制代碼 代碼如下:

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”生成方法的一個(gè)拷貝,即使原方法發(fā)生了變化,別名拷貝也不會(huì)發(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的方法可以一次性返回多個(gè)值,不過(guò)實(shí)質(zhì)上只是表面看來(lái)是返回多個(gè)值,本質(zhì)上是返回了一個(gè)數(shù)組,數(shù)組中存儲(chǔ)多個(gè)返回值,接收時(shí)可以直接定義多個(gè)變量一次性接收,如下示例代碼:

?

復(fù)制代碼 代碼如下:

def more_result_foo
?x=5
?y=x*x
?z=y-x+2
?return x,y,z??#返回x,y,z三個(gè)值
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

Ruby中的函數(shù)總結(jié),大家都清楚嗎?看完上面由武林技術(shù)頻道帶來(lái)的內(nèi)容,相信大家都了解了,之所以廣受歡迎,就是因?yàn)樗哂羞@些優(yōu)勢(shì)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 行唐县| 西平县| 浮梁县| 黄梅县| 前郭尔| 庆元县| 北京市| 法库县| 睢宁县| 盘锦市| 盱眙县| 广德县| 日照市| 云霄县| 丘北县| 威信县| 乐清市| 县级市| 金乡县| 锡林郭勒盟| 沙田区| 吴堡县| 肇州县| 武宁县| 利川市| 高州市| 泸西县| 祁东县| 扎赉特旗| 建平县| 二手房| 星座| 陇川县| 东乡县| 买车| 政和县| 唐河县| 黄龙县| 贵德县| 扬州市| 咸丰县|