亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問板塊 發(fā)新帖
查看: 6303 | 回復(fù): 16
打印 上一主題 下一主題

[討論] Perl 和 Ruby 的不同 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-04-10 16:23 |只看該作者 |倒序?yàn)g覽
以下內(nèi)容摘自 Ruby 官方主頁(yè)的繁體中文版本,作了簡(jiǎn)單的處理,有不通順的地方,請(qǐng)參看英文:

http://www.ruby-lang.org/en/docu ... /to-ruby-from-perl/

大家可以發(fā)表自己的看法。

從 Perl 到 Ruby
Perl 很贊,Perl 的文件也很贊,Perl 的社群就是...很贊。但是,這程式語(yǔ)言也相當(dāng)龐大甚至可說是復(fù)雜。對(duì)那些渴望擁有一個(gè)純真、更多直覺,天生就內(nèi)建變量導(dǎo)向特性語(yǔ)言的駱駝客來說,Ruby 也許就是為你設(shè)計(jì)的。

相似點(diǎn)

如同 Perl 一般,在 Ruby 中,

你已經(jīng)擁有一套套件管理系統(tǒng),有點(diǎn)像是 CPAN(雖然它叫做 RubyGems)。
正則表達(dá)式直接內(nèi)建,胃口夠大吧!
有相當(dāng)多常用的一般性內(nèi)建套件。
括號(hào)總是可省略的。
字串操作方式基本上是一樣的。
有一種以常見分隔符號(hào)表示的字串,和一種類似 Perl 般以正則表達(dá)式語(yǔ)法表示的字串(看起來像是 %q{這種(單引號(hào))表示法},或 %Q{這種(雙引號(hào))表示法},以及 %w{這種 表示 一組 單引號(hào) 字串 的 陣列}。如果你喜歡的話,你也 %Q|能| %Q(用) %Q^其他種類^ 的分隔符號(hào))。
你會(huì)有雙引號(hào)表示法可以做字串內(nèi)的變量取代,雖然它 "看起來#{like}這樣"(而且能放任何你喜歡的 Ruby 語(yǔ)法在這里面 #{})。
命令列指令的展開執(zhí)行使用 `反引號(hào)`。
也有內(nèi)嵌的文件工具(Ruby 的叫做 rdoc)。
相異點(diǎn)

不同于 Perl 的是,在 Ruby 中,

你沒有與 Perl 一樣的上下文依賴(context-dependent)規(guī)則。
一個(gè)變量并不等同于一個(gè)它所代表的變量。而只是一個(gè)變量的參考。
雖然 $ 和 @ 有可以當(dāng)做變量名稱的第一個(gè)字符,但不是指變量的類型,而是表示變量的作用域(scope)($ 代表全域變量,@ 代表實(shí)例變量,@@ 則是類別變量)。
陣列符號(hào)使用的是中括號(hào)([])而不是小括號(hào)(())。
在其他列表中建立列表(list)并不會(huì)使它們變成一份大列表,相反地你得到的是陣列中的陣列。
應(yīng)該使用 def 而不是 sub 來表示函式。
并沒有在每行結(jié)尾加上分號(hào)的需求。值得一提的是,你需要用 end 這種關(guān)鍵字來結(jié)束函式的定義、類別定義和 case 條件式。
變量是強(qiáng)類型。如果你需要轉(zhuǎn)換成不同類型,你將需要手動(dòng)調(diào)用 foo.to_i、foo.to_s 等等。
沒有 eq、ne、lt、gt、ge 或 le 這種寫法。
沒有鉆石型操作符(<>)。你反而較常使用 IO.some_func。
胖逗號(hào)(=>)只用來做為散列鍵值對(duì)連接符號(hào)。
沒有 undef 的寫法,在 Ruby 中你必須寫 nil。nil 是個(gè)變量(在 Ruby 中所有東西都是變量),它比較不像是個(gè)未定義的變量。如果你把它拿來當(dāng)做布爾值(boolean)使用,它會(huì)被評(píng)估為 false。
當(dāng)測(cè)試真值(true)時(shí),只有 false 和 nil 會(huì)被評(píng)估為假值(false),其他任何值都會(huì)被當(dāng)做真值(包括 0、0.0 和 "0")。
這里沒有 PerlMonks 。但 ruby-talk 郵件論壇是個(gè)非常有幫助的地方。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2013-04-10 22:42 |只看該作者
這個(gè)對(duì)比太表面了。最主要區(qū)別在于OO吧。另外ruby借鑒了函數(shù)式編程的一些思想。

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術(shù)圖書徽章
日期:2014-03-05 01:33:12技術(shù)圖書徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
3 [報(bào)告]
發(fā)表于 2013-04-11 07:55 |只看該作者
很贊。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2013-04-11 08:15 |只看該作者
Ruby 的語(yǔ)言架構(gòu)在 OO 之上。確實(shí)是 Perl 沒有的。

Ruby 雖然設(shè)計(jì)精致,但幾個(gè)地方發(fā)現(xiàn)很變扭:

1. 代碼塊,用 |var| 的語(yǔ)法設(shè)置代碼塊變量,但卻不知道和迭代器內(nèi)置的變量是否沖突,就小心的用單字符變量來設(shè)置。這就是語(yǔ)言設(shè)計(jì)的問題。應(yīng)當(dāng)將代碼塊內(nèi)的變量和迭代器內(nèi)的變量采用一種隔離機(jī)制。

2. 模塊和類的區(qū)別,類有模塊的功能,但還是加上了模塊,只為實(shí)現(xiàn)多重繼承。應(yīng)當(dāng)在類中添加關(guān)鍵字來實(shí)現(xiàn)。

3. 針對(duì)類設(shè)計(jì)的實(shí)例變量和類變量等標(biāo)識(shí)符的寫法,不能擴(kuò)展到普通方法中進(jìn)行使用。使語(yǔ)言的一致性降低。

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術(shù)圖書徽章
日期:2014-03-05 01:33:12技術(shù)圖書徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
5 [報(bào)告]
發(fā)表于 2013-04-11 08:18 |只看該作者
確實(shí)是。

論壇徽章:
46
15-16賽季CBA聯(lián)賽之四川
日期:2018-03-27 11:59:132015年亞洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49雙魚座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亞冠之布里斯班獅吼
日期:2015-07-13 10:44:56
6 [報(bào)告]
發(fā)表于 2013-04-11 09:06 |只看該作者
肯定是OO啊,Ruby 利用自己純OO和默認(rèn) self 玩出各花樣,相較之下 Perl 的 $_  也沒那么炫了

論壇徽章:
30
水瓶座
日期:2014-08-22 21:06:3415-16賽季CBA聯(lián)賽之新疆
日期:2015-12-19 19:05:48IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-12-25 06:20:31IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-12-25 06:20:31IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-12-25 06:20:3315-16賽季CBA聯(lián)賽之上海
日期:2016-04-15 19:51:31程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-04-17 06:23:29程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-04-23 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-05-26 06:20:00每日論壇發(fā)貼之星
日期:2016-05-26 06:20:0015-16賽季CBA聯(lián)賽之遼寧
日期:2017-02-16 23:59:4715-16賽季CBA聯(lián)賽之天津
日期:2019-01-11 01:11:44
7 [報(bào)告]
發(fā)表于 2013-04-11 09:30 |只看該作者
我比較看重它們之間庫(kù)的沒有重疊的地方,有的cpan沒有,在gem里可以找到。

論壇徽章:
30
水瓶座
日期:2014-08-22 21:06:3415-16賽季CBA聯(lián)賽之新疆
日期:2015-12-19 19:05:48IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-12-25 06:20:31IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-12-25 06:20:31IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-12-25 06:20:3315-16賽季CBA聯(lián)賽之上海
日期:2016-04-15 19:51:31程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-04-17 06:23:29程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-04-23 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-05-26 06:20:00每日論壇發(fā)貼之星
日期:2016-05-26 06:20:0015-16賽季CBA聯(lián)賽之遼寧
日期:2017-02-16 23:59:4715-16賽季CBA聯(lián)賽之天津
日期:2019-01-11 01:11:44
8 [報(bào)告]
發(fā)表于 2013-04-11 09:58 |只看該作者
還想起一個(gè)。Perl好像沒有內(nèi)置交互式,你Ruby是有的irb,這個(gè)很方便的

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2013-04-11 10:07 |只看該作者
回復(fù) 8# shijiang1130

Python Haskell 等許多語(yǔ)言都有,這些東西讓語(yǔ)言可以用一種更簡(jiǎn)潔的方式展示自己的功能。我兒子現(xiàn)在非常喜歡 Ruby 的 irb ,每天都用他來考計(jì)算機(jī)加法。
   
其實(shí) Perl 也有,不過是個(gè)人搞的,很簡(jiǎn)陋。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2013-04-11 11:00 |只看該作者
回復(fù) 9# Perlvim


    老哥,你兒子多大了?
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP