運(yùn)算符 | 說(shuō)明 |
==和!= | 比較兩個(gè)對(duì)象的值是否相等,a=1,b=1.0,a==b(true) |
eql? | 比較兩個(gè)對(duì)象的值是否相等和數(shù)據(jù)類(lèi)型是否一致,a=1,b=1.0,a.eql?b(false,a為Fixnum類(lèi)型,b為Float類(lèi)型) |
eqlal? | 比較兩個(gè)對(duì)象在內(nèi)存中的地址是否一致,a=1,b=1,a.eqlal?b(false,在內(nèi)存中是2個(gè)對(duì)象,地址不一樣),a=1,b=a,a.eqlal?b(true) |
=> | 比較兩個(gè)對(duì)象的值的大小,對(duì)應(yīng)返回1(大于),0(等于),-1(小于) |
>,>=,=, | 比較兩個(gè)對(duì)象的值的大小,返回true和false |
=== | 區(qū)間包含關(guān)系運(yùn)算符,右邊對(duì)象是否在左邊區(qū)間的范圍之內(nèi) |
=~和!~ | 正則表達(dá)式匹配運(yùn)算符,表示匹配和不匹配正則表達(dá)式 |
5、輸出和輸入
Ruby 語(yǔ)言 中自帶的IO輸入輸出方法寫(xiě)在Kernel 模塊的內(nèi),并且Mix-in 在根類(lèi)Object中,在任意類(lèi)中使用輸入輸出方法,可以直接進(jìn)行調(diào)用,
輸出方法代碼示例:
print可以加參數(shù)可以輸出到文件,默認(rèn)輸出到控制臺(tái),printf是按格式輸出,如上代碼中,%.2f的意思是第一個(gè)參數(shù)按Float類(lèi)型輸出,保留2位小數(shù),%s是第二個(gè)值按String類(lèi)型輸出,print "Hello!\n"和print 'Hello\n'的區(qū)別在于,""號(hào)對(duì)輸出內(nèi)容進(jìn)行解析,\n起換行作用,''號(hào)原樣輸出內(nèi)容,\n被原樣輸出,沒(méi)起換行作用,puts方法的參數(shù)是可變參數(shù),可以有零個(gè)或者多個(gè)參數(shù),參數(shù)間空格則輸出不換行,參數(shù)間用“,”分割,則每輸出一個(gè)參數(shù)都換行;
輸入方法,gets用于接收用戶輸入的字符串,在字符串的末尾會(huì)自動(dòng)加上一個(gè)換行符,所以一般在使用gets方法獲取輸入數(shù)據(jù)時(shí),會(huì)同時(shí)使用chomp方法去掉末尾的換行符
6、條件判斷
條件判斷可以使用if else,unless,case進(jìn)行,不同的情況使用不同的關(guān)鍵字,可以讓代碼更簡(jiǎn)潔易懂,如下示例代碼:
7、循環(huán)
Ruby的循環(huán)功能相當(dāng)強(qiáng)大,除了通用的while、until、for循環(huán),還有each、times、upto、downto、step等,針對(duì)不同的循環(huán)對(duì)象使用不同的循環(huán)方式,異常方便,示例代碼如下:
j=10..20
#使用for進(jìn)行對(duì)象的全循環(huán),對(duì)象可以是數(shù)組、范圍、Map等集合形式,但是Ruby官方不推薦過(guò)多使用for循環(huán),可以使用each進(jìn)行替代,因?yàn)閒or循環(huán)沒(méi)有新開(kāi)作用域,其中定義的變量在循環(huán)體外可以訪問(wèn),如下邊循環(huán)中的變量t,可以在for循環(huán)外訪問(wèn)
for t in j
puts t
break if t==17 #當(dāng)循環(huán)到t等于17時(shí),跳出整個(gè)循環(huán)
end
#更好的方式:使用each進(jìn)行遍歷
#單行代碼塊使用{}
j.each { |e| puts e }
#多行代碼塊使用do end
j.each do |e|
next if e==17 #e等于17時(shí)跳出本次循環(huán),繼續(xù)e等于18的循環(huán)
puts e
end
#既定次數(shù)的循環(huán),可以使用times
5.times{ |e| puts e } #e值從0開(kāi)始
#具有順序的排列可以使用upto或者downto進(jìn)行遍歷
'a'.upto('z') { |e| puts e unless ('h'..'n')===e} #遍歷a-z之間的英文字符,當(dāng)e不在h-n之間的字母時(shí),輸出
9.downto(1) do |e|
print "#{e}的平方值:#{e**2},#{e}的次方值:#{e**3}"
puts
end
#步長(zhǎng)相同的遞增循環(huán)可以使用step
1.step(100,3){ |e| puts e}
標(biāo)簽:西雙版納 克拉瑪依 大慶 河池 南昌 棗莊 甘孜 內(nèi)江
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ruby的基本語(yǔ)法學(xué)習(xí)總結(jié)》,本文關(guān)鍵詞 Ruby,的,基本,語(yǔ)法,學(xué)習(xí),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。