欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Ruby的基本語(yǔ)法學(xué)習(xí)總結(jié)

 更新時(shí)間:2014年11月05日 09:25:42   投稿:junjie  
這篇文章主要介紹了Ruby的基本語(yǔ)法學(xué)習(xí)總結(jié),本文講解了Ruby中的關(guān)鍵字、注釋、數(shù)據(jù)類型、賦值和條件運(yùn)算、輸出和輸入、條件判斷語(yǔ)句、循環(huán)語(yǔ)句等內(nèi)容,需要的朋友可以參考下

1、關(guān)鍵字

關(guān)鍵字不能用于定義變量或者常量,module,class,def , undef,defined?,if ,then,else,elsif,case ,when,unless,for,in,while ,until,next,break,do,redo ,retry,yield,not,and,or,true,false,nil,rescue,ensure,super,self,begin,end,BEGIN,END,__FILE__, __LINE__,return,alias

2、注釋

單行注釋以#開(kāi)頭,如:#這是注釋語(yǔ)句
多行注釋以=begin開(kāi)頭,以=end結(jié)束,如:

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

=begin
block_test = lambda {puts 'This is from lambda!'}
def block_foo(bt)
 puts 'Before yield!'
 bt.call
 puts 'After yield!'
end
block_foo(block_test)
=end

3、數(shù)據(jù)類型

Ruby中以下種數(shù)據(jù)類型 :Numeric(包括Fixnum和Float)、String、Boolean、Array、Regexp、Range、Hash,還有一種特殊類型:Symbol

4、賦值和條件運(yùn)算

Ruby中的賦值使用“=”,可以進(jìn)行批量賦值,如a,b,c=1,2,3
Ruby中的條件運(yùn)算,如下列表:

運(yùn)算符 說(shuō)明
==和!= 比較兩個(gè)對(duì)象的值是否相等,a=1,b=1.0,a==b(true)
eql? 比較兩個(gè)對(duì)象的值是否相等和數(shù)據(jù)類型是否一致,a=1,b=1.0,a.eql?b(false,a為Fixnum類型,b為Float類型)
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輸入輸出方法寫在Kernel 模塊的內(nèi),并且Mix-in 在根類Object中,在任意類中使用輸入輸出方法,可以直接進(jìn)行調(diào)用,
輸出方法代碼示例:

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

print 'Hello!'   #輸出:Hello!
print "Hello!\n"  #輸出:Hello!
printf 'Number: %.2f, String: %s',14.547,'hi!' #輸出:Number: 14.55, String: hi!
print "\n"
puts 'Hello!' 'hi'  #輸出:Hello!hi
puts 'Hello!','hi'  #輸出:Hello![換行]hi

print可以加參數(shù)可以輸出到文件,默認(rèn)輸出到控制臺(tái),printf是按格式輸出,如上代碼中,%.2f的意思是第一個(gè)參數(shù)按Float類型輸出,保留2位小數(shù),%s是第二個(gè)值按String類型輸出,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方法去掉末尾的換行符

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

STDOUT.flush
in_data = gets.chomp

6、條件判斷

條件判斷可以使用if else,unless,case進(jìn)行,不同的情況使用不同的關(guān)鍵字,可以讓代碼更簡(jiǎn)潔易懂,如下示例代碼:

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

r=rand*100
rf=format('%.2f',r)
#普通寫法
if r>50 then puts "得分:#{rf}" end
#更好的寫法
puts "得分:#{rf}" if r>50
#判斷if not的時(shí)候,請(qǐng)使用unless,下一句代碼和上一句代碼等價(jià)
puts "得分:#{rf}" unless r<=50
#多條件判斷
if r<50
 puts "得分:#{rf} 成績(jī):不合格"
else
 puts "得分:#{rf} 成績(jī):良好"
end
#更多條件
if r>90
 puts "得分:#{rf} 成績(jī):優(yōu)秀"
elsif r>70
 puts "得分:#{rf} 成績(jī):良好"
elsif r>50
 puts "得分:#{rf} 成績(jī):合格"
else
 puts "得分:#{rf} 成績(jī):不合格"
end
#更好的方式,采用case分支語(yǔ)句,when后邊的條件用了Range,Ruby自動(dòng)使用===進(jìn)行判斷
case r
when 90..100
 puts "得分:#{rf} 成績(jī):優(yōu)秀"
when 70..90
 puts "得分:#{rf} 成績(jī):良好"
when 50..70
 puts "得分:#{rf} 成績(jī):合格"
else
 puts "得分:#{rf} 成績(jī):不合格"
end

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)方式,異常方便,示例代碼如下:

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

i=0
#普通while循環(huán)
while i<10
 i+=1
 puts i
end
#單句代碼的while循環(huán)
puts i+=1 while i<10
#單句代碼的until循環(huán),until==while not
puts i+=1 until i==10

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}

相關(guān)文章

  • ruby開(kāi)發(fā)vim插件小結(jié)

    ruby開(kāi)發(fā)vim插件小結(jié)

    作為一個(gè)Vimmer和Pythoner,之前折騰過(guò)用python編寫vim插件?,F(xiàn)在作為半個(gè)Rubist,又開(kāi)始繼續(xù)折騰。
    2014-07-07
  • ruby執(zhí)行周期性任務(wù)的三種gem介紹

    ruby執(zhí)行周期性任務(wù)的三種gem介紹

    無(wú)論是用ruby做系統(tǒng)管理,還是用rails做web開(kāi)發(fā),都可能遇到周期性任務(wù),它們按照一定時(shí)間周期(1小時(shí),2天......)持續(xù)地觸發(fā)。在ruby中,我認(rèn)為一次性任務(wù)使用 sidekiq 來(lái)完成是非常方便的,而周期性的任務(wù)就需要用到 whenever , sidetiq , clockwork 等等gem了。
    2014-07-07
  • Ruby簡(jiǎn)明教程之判斷語(yǔ)句介紹

    Ruby簡(jiǎn)明教程之判斷語(yǔ)句介紹

    這篇文章主要介紹了Ruby簡(jiǎn)明教程之判斷語(yǔ)句介紹,非常簡(jiǎn)潔的講解,可以作為語(yǔ)法備忘,需要的朋友可以參考下
    2014-06-06
  • Ruby的面向?qū)ο缶幊痰幕A(chǔ)教程

    Ruby的面向?qū)ο缶幊痰幕A(chǔ)教程

    這篇文章主要介紹了Ruby的面向?qū)ο缶幊痰幕A(chǔ)教程,包括Ruby中各種有關(guān)類和對(duì)象的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-04-04
  • Ruby實(shí)現(xiàn)的一個(gè)強(qiáng)大的批量刪除文件腳本分享

    Ruby實(shí)現(xiàn)的一個(gè)強(qiáng)大的批量刪除文件腳本分享

    這篇文章主要介紹了Ruby實(shí)現(xiàn)的一個(gè)強(qiáng)大的批量刪除文件腳本分享,本文腳本實(shí)現(xiàn)對(duì)指定目錄下的文件根據(jù)最后修改時(shí)間刪除文件,需要的朋友可以參考下
    2015-01-01
  • Ruby實(shí)現(xiàn)網(wǎng)頁(yè)圖片抓取

    Ruby實(shí)現(xiàn)網(wǎng)頁(yè)圖片抓取

    本文給大家分享的是個(gè)人使用ruby編寫的抓取網(wǎng)頁(yè)圖片的代碼,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。
    2016-04-04
  • ruby聲明式語(yǔ)法的實(shí)現(xiàn)例子

    ruby聲明式語(yǔ)法的實(shí)現(xiàn)例子

    這篇文章主要介紹了ruby聲明式語(yǔ)法的實(shí)現(xiàn)例子,聲明式編程是一種編程范型,與命令式編程相對(duì)立,需要的朋友可以參考下
    2014-11-11
  • Ruby中的Range對(duì)象學(xué)習(xí)筆記

    Ruby中的Range對(duì)象學(xué)習(xí)筆記

    這篇文章主要介紹了Ruby中的Range對(duì)象學(xué)習(xí)筆記,本文講解了Range對(duì)象的定義、Range對(duì)象的一些使用技巧等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • win10下使用virtualbox + vagrant配置ruby開(kāi)發(fā)機(jī)環(huán)境

    win10下使用virtualbox + vagrant配置ruby開(kāi)發(fā)機(jī)環(huán)境

    Vagrant是一個(gè)基于Ruby的工具,用于創(chuàng)建和部署虛擬化開(kāi)發(fā)環(huán)境。它 使用Oracle的開(kāi)源VirtualBox虛擬化系統(tǒng),使用 Chef創(chuàng)建自動(dòng)化虛擬環(huán)境。搭配Cmder如絲般順滑,實(shí)現(xiàn)你所有關(guān)于Mac&Linux的幻想
    2017-08-08
  • Ruby編寫HTML腳本替換小程序的實(shí)例分享

    Ruby編寫HTML腳本替換小程序的實(shí)例分享

    這篇文章主要介紹了Ruby編寫HTML腳本替換小程序的實(shí)例分享,單純使用Ruby中的字符串替換方法而沒(méi)有涉及更復(fù)雜的正則表達(dá)式,需要的朋友可以參考下
    2016-05-05

最新評(píng)論