2007年8月31日
原文地址
下午無(wú)聊翻譯一下,看看ruby官方怎么和java對(duì)比
相同點(diǎn):
類似于java,在ruby中:
內(nèi)存管理都是由GC(garbage collector)負(fù)責(zé)。
都是強(qiáng)類型語(yǔ)言。
都有public,private,protected的方法可見(jiàn)性之分。
都有嵌入式文檔工具(ruby的叫做RDoc)。rdoc生成的文檔看起來(lái)非常像由javadoc生成的。
不同:
于java不同的是,在ruby中:
你不必編譯代碼,你只需要直接運(yùn)行代碼。
Gui開(kāi)發(fā)包不同。比如,ruby的用戶會(huì)嘗試WxRuby,F(xiàn)XRuby,Ruby-GNOME2,或者基于Ruby Tk庫(kù)。
你要在定義任何事物(像class)后面加上關(guān)鍵字end,而不是用花括號(hào)({})來(lái)包圍代碼塊。
使用了require代替了import。
所有的成員變量(屬性)都是private級(jí)的。在類外訪問(wèn)任何事物要通過(guò)方法調(diào)用。
什么都是對(duì)象,包括2和3.14159。
沒(méi)有靜態(tài)類型檢查。
變量名都只是標(biāo)簽,它們沒(méi)有與類型相關(guān)。
不用聲明變量類型,你只需要賦值給新的變量名就可以了(例子,a = [1,2,3] 相當(dāng)于 int[] a = {1,2,3};)。
沒(méi)有類型強(qiáng)制轉(zhuǎn)換這個(gè)概念,只管調(diào)用方法就好了。
用 foo = Foo.new( "hi") 取代這樣新建對(duì)象的方法 Foo foo = new Foo( "hi" )。
構(gòu)造方法一直都叫“initialize”,不是和class同名的方法。
使用“混入” 代替 “接口”。
YAML 比 XML 更受歡迎。
這里用nil代替null。
==和equals()方法處理方法不同。當(dāng)你想要測(cè)試相等性時(shí)就使用 == 操作符(就像Java的equals()方法)。當(dāng)要想要知道兩個(gè)對(duì)象是否是同一個(gè)時(shí)就使用equal?()方法(就像Java中的==)。
摘要: 早上看了Ruby論壇中有人(blackanger)寫(xiě)的TDD by Ex這本書(shū)里的資金例子,自己也想寫(xiě)一寫(xiě)。和他不同,我是全過(guò)程詳細(xì)寫(xiě)出來(lái)。第一次用Ruby寫(xiě)代碼,第一次用Ruby的Unit框架,而且下午睡醒后迷迷糊糊寫(xiě)的,可能有很多錯(cuò)誤,請(qǐng)多多指正。
閱讀全文
在Ubuntu下通過(guò)apt包管理器安裝ror環(huán)境是很方便的。我自己寫(xiě)了一個(gè)腳本:
sudo apt-get install build-essential gcc g++ libssl0.9.8 libssl0.9.8-dbg libssl-dev build-essential
sudo apt-get install ruby
sudo apt-get install libzlib-ruby rdoc ri irb ruby1.8-dev
sudo apt-get install libzlib-ruby
sudo apt-get install rubygems
sudo gem update --system
sudo gem install rails -y
sudo gem install rails --include-dependencies
sudo gem install mongrel -y
sudo gem install mongrel_cluster --include-dependencies
sudo apt-get install libopenssl-ruby
sudo apt-get install libgd-ruby1.8 libyaml-ruby libzlib-ruby
sudo apt-get install imagemagick
sudo apt-get install libmagick9-dev ruby1.8-dev
sudo gem install RMagick? -y
直接把上面的一串保存在一個(gè)文本文件中,然后用sh命令執(zhí)行就可以一步安裝完成了。
我發(fā)現(xiàn)網(wǎng)上很多在安裝gem的命令都是錯(cuò)的,在Ubuntu里gem包不是ruby的gem,ubuntu下gem包的解釋如下:
Graphics Environment for Multimedia - PureData library
Gem is a loadable library for puredata, which adds OpenGL graphics rendering
and animation to Pd.? Pd is a graphical programming language and computer
music system.
這個(gè)包和ruby一點(diǎn)關(guān)系都沒(méi)有。正確的應(yīng)該是rubygems包。不知道為什么到處有人都是寫(xiě)
sudo?apt-get?install gem的,很多都是轉(zhuǎn)載,有的連轉(zhuǎn)載都不聲明,直接試都不試把錯(cuò)的東西直接貼出來(lái)。
另有人說(shuō)源里的gem很過(guò)時(shí),其實(shí)也不會(huì)。