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

首頁 > 編程 > Ruby > 正文

ruby 一些簡單的例子

2020-10-29 19:47:58
字體:
來源:轉載
供稿:網(wǎng)友
現(xiàn)在我們將前面的一些示例程序的代碼坼開來分析一下.

下面的例子出現(xiàn)在簡單的例子一節(jié).

def fact(n)  
    if n == 0    
       1  
    else    
       n * fact(n-1)  
    end
end
print fact(ARGV[0].to_i), "/n"  


因為是第一次解釋,我們將逐行分析.

def fact(n) 


第一行,def 用于定義一個函數(shù)(或者,更準確地說,一個方法(method);我們會在稍后的一節(jié)中詳細討論什么是一個方法).這里,它指明 fact 函數(shù)帶一個參數(shù),也就是 n.

if n == 0 


if 用來檢查一個條件.當條件吻合時,執(zhí)行下面的代碼;否則執(zhí)行跟在else后的代碼.

1  


當條件成立時if 的值為 1.

else 


如果條件不成立,執(zhí)行從這里到end的代碼.

n * fact(n-1) 


如果條件不滿足, if的值會是n乘fact(n-1)的結果.

end 


第一個 end 與 if 語句對應.

end 


第二個 end 與 def 語句對應.

print fact(ARGV[0].to_i), "/n" 


這句用由命令行指定的值來調(diào)用fact()函數(shù)并打印結果.

ARGV是一個包含命令行參數(shù)的數(shù)組.ARGV的成員是字符串,所以我們必須通過to_i轉化其為整數(shù). Ruby并不像Perl那樣自動將字符串轉化為整數(shù).

Hmmm...如果向程序賦一個負值作為參數(shù)會怎樣?你看到這個問題了嗎?你可以修復它嗎?

Strings

下面我們來檢查在字符串這章中出現(xiàn)的猜謎程序.由于這個要長一點,我們?yōu)槊恳恍写蛏闲袛?shù).

01 words = ['foobar', 'baz', 'quux']
02 secret = words[rand(3)]
03
04 print "guess? "
05 while guess = STDIN.gets
06   guess.chop!
07   if guess == secret
08     print "you win/n"
09     break
10   else
11     print "you lose./n"
12   end
13   print "guess? "
14 end
15 print "the word is ", secret, "./n" 


這個程序里,我們使用了一個新的控制結構 while.只要某個指定的條件保持為真,while和它對應的end之間的代碼會重復執(zhí)行.

行2的rand(3)返回一個介于0-2之間的隨機數(shù).這個隨機數(shù)用于提取數(shù)組 words 中的一個成員.

在行5我們通過STDIN.gets方法從標準輸入讀取一行.如果讀行遇到時 EOF (文件結束), gets會返回nil.因此,與while相連的代碼會一直執(zhí)行直到它遇到^D(或DOS下的^Z),表示輸入的結束.

行6的guess.chop!去掉 guess 的最后一個字符;那一定是個換行符.

行15,我們打印出要猜的詞.我們寫的代碼是上向 print 語句傳遞三個參數(shù)(這三個參數(shù)一個接一個地打印),但也可以用一個參數(shù)等效地打印: 將secret寫為 #{secret}以表明將它是一個要取值的變量,而非一個要打印的一般文字:

print "the word is #{secret}./n"  


正則表達式

最后我們來看看正則表達式一節(jié)的那個程序.


01 st = "/033[7m"
02 en = "/033[m"
03
04 while TRUE
05   print "str> "
06   STDOUT.flush
07   str = gets
08   break if not str
09   str.chop!
10   print "pat> "
11   STDOUT.flush
12   re = gets
13   break if not re
14   re.chop!
15   str.gsub! re, "#{st}//&#{en}"
16   print str, "/n"
17 end
18 print "/n" 


在行4,while的條件被硬設為 true,因此這好像構成了一個無限循環(huán).但我們在行8和行13放置了break語句以跳出循環(huán).這兩個break語句也是 if 修飾辭(if modifier)的一個例子.一個"if修飾辭"當且僅當指明條件滿足時執(zhí)行它左邊的語句.

再說說 chop! (出現(xiàn)在行9和行14).在Ruby里,我們亦可將"!"和"?"附于某些方法名字后面.驚嘆號(!,有時大聲地念作"bang!")暗示某些東西可能具破壞性(destructive),也就是指,某些東西可以改變它所觸及的東西. chop!直接作用于一個字符串,但不帶!的chop只會產(chǎn)生一個拷貝.下面有這一區(qū)別的演示.

ruby> s1 = "forth"
  "forth"
ruby> s1.chop!       # This changes s1.
  "fort"
ruby> s2 = s1.chop   # This puts a changed copy in s2,
  "for"
ruby> s1             # ... without disturbing s1.
  "fort" 



以后你還會遇見以問號(?,有時大聲地念做 "huh?")結束的方法名;這指"斷言"(prediacte)方法,只會返回true或false.

行15應給予注意.首先,注意gsub!也是一個破壞函數(shù).它通過替換所有符合 re 模式字符來修改 str(sub指替換,首字母 g 指全局, 比如,替換所有的匹配而不只是第一個匹配).到此為止,還好;但我們用什么來替代文本中的匹配部分呢? 在行1和行2里的 st 和 en 被分別定義為表示反轉文本顏色(color-inverted)和恢復正常文本顏色的ANSI碼. 在行15,它們被#{}括起以確保他們被前面定義的那樣解釋(這樣我們才沒看見變量名被打印出來).在這中間是 "http://&".這是個小把戲.因為替換字符串是由雙引號引起的,一對反斜杠會被解釋為一個單一的反斜杠;所以 gsub!實際上得到的是"/&",就一段特殊代碼正好就是表示"任何與模式于第一處匹配的字符".因此新的字符串在被打印出來的時候,很像原來的那個,只不過匹配的部分以反視(inverse video)的方式高亮度顯示出來.
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
免费成年网站| 国模少妇一区二区三区| 日韩中文字幕国产精品| 成人av免费在线看| 在线观看不卡| 亚洲丝袜另类动漫二区| 久久久久久一区| 激情视频小说图片| 欧美videos粗暴| 久久成人免费网| 一个色综合久久| 久久综合成人| 久久综合丝袜日本网| 午夜国产在线观看| 在线观看日产精品| 粉嫩av一区二区三区在线播放| 黄色工厂这里只有精品| 欧美成人久久久免费播放| 亚洲一区二区久久久| 黑人巨茎大战欧美白妇| 久久精品国产在热久久| av一卡二卡| 一区二区三区中文字幕在线观看| 91精品国产一区二区三密臀| 欧美成人免费看| 狠狠88综合久久久久综合网| 黄色免费av网站| 91蜜桃臀久久一区二区| 51国偷自产一区二区三区的来源| 中文字幕+乱码+中文乱码www| 国产女主播在线| 国产乱女淫av麻豆国产| 1024手机在线观看你懂的| 在线免费观看av片| 国产网站在线免费观看| 影音先锋国产在线资源| 国产高清在线观看视频| 亚洲精品午夜国产va久久成人| 五月天丁香婷| 精品久久久久久久| 91国内精品视频| 自拍偷拍亚洲色图欧美| 国产精品www网站| 黄页在线播放| 国产精品日韩欧美一区| 午夜精品aaa| 粉嫩tv在线播放| 欧美性xxxxxxxx| 黄在线观看在线播放720p| www.色天使| 红桃视频一区二区三区免费| 精品国免费一区二区三区| 欧美日韩高清区| 亚洲国产成人影院播放| 男女男精品视频| 亚洲欧美另类色图| 福利片一区二区| www.天堂在线观看| 日本中文字幕一区二区有码在线| 7799精品视频天天看| 久久er99热精品一区二区三区| 成人午夜视频免费在线观看| 中文字幕人妻一区二区三区在线视频| 亚洲欧美中文在线视频| 麻豆成全视频免费观看在线看| 国产女主播自拍| 亚洲精选在线| ...xxx性欧美| 日本一区二区三区四区| 久久久久久婷婷| 26uuu国产电影一区二区| 国产免费a视频| 91亚洲男人天堂| 国内一区在线| 经典一区二区三区| 久操免费在线| av中文资源在线| 欧美国产一区视频在线观看| 呦呦视频在线观看| 91pony九色| 欧美一区二区视频97| 91肉色超薄丝袜脚交一区二区| 熟妇人妻中文av无码| 国产日产精品一区二区三区四区的观看方式| 亚洲精品久久久久久| 亚洲国产精品视频| 91se在线| 日韩三级视频在线| 精品推荐国产麻豆剧传媒| 97久久久久久久| 亚洲自拍偷拍网站| 国产精品久久国产| 亚洲国产日韩在线一区模特| 国产区在线视频| 午夜激情影院| 成人在线免费公开观看视频| 亚洲一区二区三区小说| 欧美 国产 综合| 国产一区二区日韩精品欧美精品| 国产一区二区在线视频播放| 欧美重口另类| 一本久道久久综合狠狠爱亚洲精品| 男女猛烈无遮挡| 先锋影音男人| 女同一区二区| 亚洲av成人精品毛片| 国产精品亲子伦对白| 伊人久久在线观看| 在线视频国内一区二区| 日韩精品视频在线观看网址| 国产亚洲视频一区| 中文字幕亚洲电影| 日本三级中文字幕| 666av成人影院在线观看| 国产又粗又硬又长又爽| 亚洲一级在线播放| 国产精品一卡| 91美女片黄在线观看游戏| 精品少妇在线视频| 久久久久久久久久久久久久| 日本在线不卡一区二区| 国产精品超碰97尤物18| 黄色国产网站在线观看| 97se亚洲国产综合在线| 欧美亚洲一区二区在线观看| 免费看欧美女人艹b| 欧美精品激情视频| 国产精品一区二区精品视频观看| 免费黄色在线视频网站| kk眼镜猥琐国模调教系列一区二区| 欧美韩一区二区| 国产一区二区三区四区福利| 无人视频在线观看免费| 一区二区三区四区av| 国产在线视精品麻豆| 免费a在线观看播放| h在线观看免费| 日韩久久久精品| 最新亚洲视频| 精品乱码一区内射人妻无码| 中文有码在线观看| 中文资源在线网| 国内福利写真片视频在线| 美女网站一区| 五月天丁香激情| 91久久精品美女高潮| 亚洲欧美成人一区| 国产成人免费视频网站视频社区| 成人久久网站| 四虎国产精品成人免费入口| 成人av在线看| 国产三级国产精品国产国在线观看| 免费黄色在线网址| 国产高清不卡二三区| 精品一二线国产| 国内毛片毛片毛片毛片| 女性女同性aⅴ免费观女性恋| 日韩美女精品在线| 日本在线视频免费| 又黄又爽又色视频| 久久精品视频2| 久草国产在线视频| 18岁网站在线观看| 亚洲人成伊人成综合网久久久| 97久久伊人激情网| 国产在线不卡av| 性欧美精品xxxx| eeuss影院在线| 牛牛澡牛牛爽一区二区| jizz国产| 国产精品成人一区二区| 你懂的视频在线观看资源| 国产aⅴ激情无码久久久无码| 国产精品久久久久久久久借妻| 成人美女视频在线观看| 日韩综合小视频| 欧美午夜精品久久久久免费视| 91精品免费观看| 国精产品一区一区二区三区mba| 五月婷婷开心中文字幕| 国产日本欧洲亚洲| 蜜桃成人在线视频| 精品视频在线观看免费| 亚洲人成电影在线| a视频在线观看| 欧美日韩精品一区二区三区| 亚洲欧美日韩精品久久| 欧美videossex另类| 国产一区二区三区小说| 一女二男一黄一片| 桃乃木香奈和黑人aⅴ在线播放| 亚洲国产第一区| 18禁裸乳无遮挡啪啪无码免费| 国产特级嫩嫩嫩bbb| 九九热这里只有精品免费看| 日本强好片久久久久久aaa| 电影eeuss影院www| 亚洲高清免费视频| 久久影院免费观看| 久草在线资源站手机版| 国产日本一区二区三区| 日韩亚洲国产精品| 91精品国产综合久久香蕉的特点| 国产精品996| 日韩av网址大全| 19j韩国主播韩宝贝在线| 成年人午夜视频在线观看| 456亚洲影院| 亚洲精品无码久久久久久久| 含羞草久久爱69一区| 欧美激情国产日韩精品一区18| 韩国av一区二区三区| 欧美3p视频| 久久久免费视频网站| 国产精品精品久久久久久| 欧美成人一区二区三区片免费| 中文文精品字幕一区二区| 亚洲一级电影视频| 99999精品视频| 午夜精彩视频在线观看不卡| 色综合婷婷久久| xxxxxxxxx欧美| 久久久久久久久久久久久av| h网站视频在线观看| 日本丶国产丶欧美色综合| 欧美成人午夜| 国产一卡二卡3卡4卡四卡在线| 亚洲成人黄色网址| 国产成人精品福利| 欧美成人高清手机在线视频| 亚洲精品国产setv| 久久激情五月丁香伊人| av动漫精品一区二区| 无码精品国产一区二区三区免费| 91精品人妻一区二区| 香港欧美日韩三级黄色一级电影网站| bt天堂新版中文在线地址| 亚洲优女在线| 日韩中文字幕网| 国产亚洲欧洲黄色| 精品午夜一区二区三区| 国产成人精品一区二区| 欧美视频综合| 在线不卡一区二区三区| 秋霞午夜理伦电影在线观看| 欧美经典一区二区三区| 欧美精品在线免费播放| 无套内谢丰满少妇中文字幕| 97中文字幕在线| 久草在线资源视频在线观看| 国产亚洲aⅴaaaaaa毛片| 色综合天天综合网天天看片| 亚洲a视频在线观看| 国产在线精品一区在线观看麻豆| 国产日韩视频一区| blackedav金发美女大战黑人| 中文字幕黄色av| av资源在线观看免费高清| 伊人色**天天综合婷婷| 欧美最顶级的aⅴ艳星| 一起操在线播放| 在线观看国产亚洲| 香蕉视频网站在线观看| 337p日本欧洲亚洲大胆精品| 日韩欧美aaaaaa| 亚洲av无码成人精品区| 少妇人妻互换不带套| 在线不卡a资源高清| 国产精品免费看久久久香蕉| 先锋影音国产精品| 国产一区香蕉久久| 国产伊人精品| 免费国产亚洲视频| 日韩精品丝袜美腿| 91精品国产自产91精品| 精品一区二区在线播放| 亚洲精品第一国产综合野草社区| av免费精品一区二区三区| 欧美激情成人在线视频| 亚洲欧美自拍另类日韩| 国产精品一区视频| 亚洲成人国产精品| 污污视频网站| 中文字幕1区2区| 欧美老年两性高潮| 国产天堂视频在线观看| 日韩有码电影| 韩国精品一区二区三区六区色诱| 色之综合天天综合色天天棕色| 夜夜精品浪潮av一区二区三区| 色婷婷久久久久swag精品| 国产乱人伦精品一区二区三区| 九色视频在线播放| 久久99精品久久久久久秒播放器| 欧美精品一区在线发布| 黄色av网站免费| 欧美黑人猛猛猛| 91国语精品自产拍在线观看性色| 亚洲免费不卡视频| 国产www免费观看| 视频国产一区| 欧美四级电影网| 成人黄色av电影| 中文字幕你懂的| 哥也色在线视频| 国产精品视频免费观看www| 中国xxx69视频| 国产精品suv一区二区69| 最新四虎影在线在永久观看www| 日韩中文在线电影| 色视频线观看在线播放| 欧美特黄一级片| 欧美日韩成人在线一区| 成人免费观看毛片| 国产精品久久久对白| 极品尤物av丝袜美腿在线观看| 性欧美gay| 熟女高潮一区二区三区| 日韩理论片网站| 黄色在线网站噜噜噜| 清纯唯美亚洲综合一区| 欧美私人免费视频| 做爰高潮hd色即是空| 免费国产高清| 成人黄色生活片| 女人公敌韩国| 激情福利在线| 天天草天天爽|