?
?
函數(shù)的概念:?
我們把事先編好的,能夠解決或者說處理某種情況的功能的集合叫做函數(shù)。不必在意概念,用得多了自然就明白。其實(shí)我們一直在使用的p,print就是函數(shù)的一種,下面介紹一個(gè)很有用的函數(shù),隨機(jī)函數(shù)rand():
rand(x)返回0-(xx-1)范圍內(nèi)的隨機(jī)數(shù),例如:
p?rand(100)?
返回的數(shù)字在0-99范圍內(nèi)。
我們也可以設(shè)計(jì)自己的函數(shù)以便增加我們需要的功能,更多的時(shí)候,我們大多數(shù)時(shí)間是在跟函數(shù)打交道。
函數(shù)的聲明:
函數(shù)的名字基本上和變量的名字有著相同的限制,例外的情況是,函數(shù)可以在名字的最后添加?或!符號(hào),這種符號(hào)有著特殊的用處,以后會(huì)講到。
函數(shù)的聲明要用def..end語句,形如:
def?函數(shù)名字
語句
end
我們用rand函數(shù)來設(shè)計(jì)一個(gè)自己的函數(shù)bet():
def?bet
??if?rand(6)>3
?????return?"大"
??else
?????return?"小"
??end
end?
print?bet
?
這里的return表示函數(shù)返回的值,如果省略return也可以,但最好帶上,能夠使程序可讀性更好。
我們給bet函數(shù)增加參數(shù):
def?bet(x)
??if?rand(x)>3
?????return?"大"
??else
?????return?"小"
??end
end?
print?bet(7)?
還可以為參數(shù)設(shè)置默認(rèn)值:
def?bet(x=7)
??if?rand(x)>3
?????return?"大"
??else
?????return?"小"
??end
end?
print?bet???#這和print?bet(7)一樣
?
函數(shù)可以有很多參數(shù):
def?bet(x,y,z)
if?rand(x)>3?and?rand(y)>3?and?rand(z)>3
return?"大"
else
return?"小"
end
end?
print?bet(7,6,10)
?
重定義函數(shù):
如果定義了兩次相同的函數(shù),則只有后面定義的函數(shù)有效,而先前的定義就無效了。
def?hello
return"?您好?"
end
def?hello
return"?晚安?"
end
p?hello?#=>"?晚安?"?
版權(quán)聲明:RUBY文檔中心的所有文章標(biāo)明[原創(chuàng)]的均為本站作品,版權(quán)屬RUBY中文化計(jì)劃,若轉(zhuǎn)載請(qǐng)注明;標(biāo)明[翻譯]的其外文版權(quán)歸原作者,譯文版權(quán)屬RUBY中文化計(jì)劃;標(biāo)明[轉(zhuǎn)貼]的,若原作者感到侵犯了他的著作權(quán),那么請(qǐng)及時(shí)跟主持人聯(lián)系,我們會(huì)盡快更正。
?