亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Ruby > 正文

Ruby的基本語法

2020-02-24 15:36:27
字體:
來源:轉載
供稿:網友

初學Ruby的時候我們都需要認真掌握其基本語法,這樣我們才能在后面的Ruby學習過程中更加順暢,那么我們現在就去看看關于Ruby的基本語法內容吧。

1、關鍵字

關鍵字不能用于定義變量或者常量,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、注釋

單行注釋以#開頭,如:#這是注釋語句
多行注釋以=begin開頭,以=end結束,如:

復制代碼 代碼如下:

=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、數據類型

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

4、賦值和條件運算

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

?

運算符 說明
==和!= 比較兩個對象的值是否相等,a=1,b=1.0,a==b(true)
eql? 比較兩個對象的值是否相等和數據類型是否一致,a=1,b=1.0,a.eql?b(false,a為Fixnum類型,b為Float類型)
eqlal? 比較兩個對象在內存中的地址是否一致,a=1,b=1,a.eqlal?b(false,在內存中是2個對象,地址不一樣),a=1,b=a,a.eqlal?b(true)
<=> 比較兩個對象的值的大小,對應返回1(大于),0(等于),-1(小于)
>,>=,<=,< 比較兩個對象的值的大小,返回true和false
=== 區間包含關系運算符,右邊對象是否在左邊區間的范圍之內
=~和!~ 正則表達式匹配運算符,表示匹配和不匹配正則表達式

5、輸出和輸入

Ruby 語言 中自帶的IO輸入輸出方法寫在Kernel 模塊的內,并且Mix-in 在根類Object中,在任意類中使用輸入輸出方法,可以直接進行調用,
輸出方法代碼示例:

復制代碼 代碼如下:

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可以加參數可以輸出到文件,默認輸出到控制臺,printf是按格式輸出,如上代碼中,%.2f的意思是第一個參數按Float類型輸出,保留2位小數,%s是第二個值按String類型輸出,print "Hello!/n"和print 'Hello/n'的區別在于,""號對輸出內容進行解析,/n起換行作用,''號原樣輸出內容,/n被原樣輸出,沒起換行作用,puts方法的參數是可變參數,可以有零個或者多個參數,參數間空格則輸出不換行,參數間用“,”分割,則每輸出一個參數都換行;

輸入方法,gets用于接收用戶輸入的字符串,在字符串的末尾會自動加上一個換行符,所以一般在使用gets方法獲取輸入數據時,會同時使用chomp方法去掉末尾的換行符

?

復制代碼 代碼如下:

STDOUT.flush
in_data = gets.chomp

?

6、條件判斷

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

復制代碼 代碼如下:

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

?

7、循環

Ruby的循環功能相當強大,除了通用的while、until、for循環,還有each、times、upto、downto、step等,針對不同的循環對象使用不同的循環方式,異常方便,示例代碼如下:

?

復制代碼 代碼如下:

i=0
#普通while循環
while i<10
?i+=1
?puts i
end
#單句代碼的while循環
puts i+=1 while i<10
#單句代碼的until循環,until==while not
puts i+=1 until i==10

?

j=10..20
#使用for進行對象的全循環,對象可以是數組、范圍、Map等集合形式,但是Ruby官方不推薦過多使用for循環,可以使用each進行替代,因為for循環沒有新開作用域,其中定義的變量在循環體外可以訪問,如下邊循環中的變量t,可以在for循環外訪問
for t in j
?puts t
?break if t==17??#當循環到t等于17時,跳出整個循環
end
#更好的方式:使用each進行遍歷
#單行代碼塊使用{}
j.each { |e| puts e }
#多行代碼塊使用do end
j.each do |e|
?next if e==17??#e等于17時跳出本次循環,繼續e等于18的循環
?puts e
end
#既定次數的循環,可以使用times
5.times{ |e| puts e }?#e值從0開始
#具有順序的排列可以使用upto或者downto進行遍歷
'a'.upto('z') { |e| puts e unless ('h'..'n')===e}?#遍歷a-z之間的英文字符,當e不在h-n之間的字母時,輸出
9.downto(1) do |e|
?print "#{e}的平方值:#{e**2},#{e}的次方值:#{e**3}"
?puts
end
#步長相同的遞增循環可以使用step
1.step(100,3){ |e| puts e}

本文主要介紹了Ruby的基本語法,內容包括Ruby中的關鍵字、注釋、數據類型、賦值和條件運算、輸出和輸入等。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91欧美精品成人综合在线观看| 精品成人国产在线观看男人呻吟| 欧美性猛交xxxx免费看漫画| 国产一区二区三区四区福利| 国产亚洲欧洲高清| 久久久久久亚洲精品中文字幕| 久久99精品久久久久久噜噜| 91精品免费视频| 国产精品久久久久久久久久| 国产激情久久久久| 影音先锋欧美精品| 中文字幕亚洲一区在线观看| 欧美精品手机在线| 欧美成人自拍视频| 91po在线观看91精品国产性色| 国产精品美女久久久久av超清| 国产成人精彩在线视频九色| 亚洲第一视频在线观看| 夜夜狂射影院欧美极品| 日韩av片免费在线观看| 国产精品视频公开费视频| 日韩在线观看免费高清| 欧美国产日韩中文字幕在线| 欧美激情视频一区二区三区不卡| 中文字幕日韩综合av| 久久这里只有精品99| 欧美性高潮在线| 久久久99免费视频| 欧美激情亚洲激情| 国产精品亚洲视频在线观看| 国产精品免费一区二区三区都可以| 亚洲视屏在线播放| 日韩电视剧免费观看网站| 97avcom| 国产精品91久久久| 久久人人爽人人爽人人片亚洲| 日韩欧美在线字幕| 国产精品va在线播放我和闺蜜| 亚洲精品之草原avav久久| 有码中文亚洲精品| 亚洲四色影视在线观看| 亚洲一二在线观看| 伊人久久精品视频| 亚洲va欧美va国产综合剧情| 国产精品爽黄69| 播播国产欧美激情| 91视频-88av| 久久久精品2019中文字幕神马| 亚洲精品福利在线| 中文字幕精品久久| 欧美午夜激情小视频| 亚洲视屏在线播放| 日韩av网址在线| 欧美午夜精品久久久久久浪潮| 亚洲欧洲一区二区三区久久| 亚洲国产欧美精品| 91av视频在线播放| 亚洲国产中文字幕在线观看| 一区二区在线视频| 国产日韩中文字幕在线| 国产精品自产拍在线观看| 国产精品久久久久久久久久久新郎| 97欧美精品一区二区三区| 91成人精品网站| 亚洲欧美日韩第一区| 国产精品电影网站| 亚洲男人天堂手机在线| 国产午夜精品美女视频明星a级| www.日韩视频| 免费av在线一区| 欧美日韩国产一区在线| 国产精品视频区1| 国产欧亚日韩视频| 亚洲欧美制服中文字幕| 欧美成人精品在线播放| 97人人模人人爽人人喊中文字| 久久久女女女女999久久| 欧美精品18videosex性欧美| 欧美精品制服第一页| 国产欧美精品一区二区三区介绍| 欧美日韩美女视频| 久久久久久亚洲| 欧美成人午夜免费视在线看片| 国内揄拍国内精品少妇国语| 最新国产精品拍自在线播放| 亚洲mm色国产网站| 欧洲美女免费图片一区| www欧美日韩| 欧美与欧洲交xxxx免费观看| 日韩久久午夜影院| 亚洲精品天天看| 国产亚洲欧美视频| 国产精品主播视频| 国产精品一区二区三区久久久| 98精品国产高清在线xxxx天堂| 国产精品极品美女粉嫩高清在线| 欧美黑人国产人伦爽爽爽| 欧美在线一级va免费观看| 欧美日韩中国免费专区在线看| 91免费国产视频| 亚洲午夜未删减在线观看| 亚洲精品成人久久电影| 国产精品av在线播放| 国产精品女人久久久久久| 欧美国产日韩一区二区在线观看| 97国产精品免费视频| 亚洲欧美精品一区二区| 日韩av中文在线| 欧美成人精品在线播放| 亚洲国产成人精品久久久国产成人一区| 国产精品久久久久免费a∨大胸| 欧美视频免费在线| 久久影院模特热| 国产精品久久久久久网站| 精品国产电影一区| 日韩免费av在线| 国产精品日韩欧美综合| 国产在线999| 日本精品久久中文字幕佐佐木| 性日韩欧美在线视频| 97超视频免费观看| 久久99视频精品| 日韩免费精品视频| 欧美亚洲成人xxx| 91精品国产综合久久男男| 国产剧情日韩欧美| 日韩高清电影免费观看完整| 亚洲国产另类久久精品| 成人a级免费视频| 国产一区二区免费| 欧美诱惑福利视频| 国内伊人久久久久久网站视频| 欧美国产视频一区二区| 亚洲大胆人体在线| 欧美日韩国产综合视频在线观看中文| 国产精品视频久| 国产亚洲精品美女久久久| 久久久精品999| 亚洲热线99精品视频| 91精品国产自产在线| 欧美尤物巨大精品爽| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产亚洲欧洲高清| 日韩av在线不卡| 中文在线不卡视频| 欧美激情亚洲精品| 不卡毛片在线看| 国产精品r级在线| 色综合久久88色综合天天看泰| 国产精品久久久久久久av电影| 亚洲资源在线看| 欧美电影免费在线观看| 亚洲最新av在线网站| 亚洲电影天堂av| 欧美日韩一区二区免费在线观看| 成人久久久久久久| 国产人妖伪娘一区91| 福利一区福利二区微拍刺激| 亚洲国产日韩一区| 亚洲成人aaa| 欧美一级免费视频| 国产中文日韩欧美| 亚洲欧美www| 国产精品久久久久久久久免费|