Time of Update: 2017-01-18
一個運行著的程式常會遇到意外的問題.一個要讀取的檔案不存在;當希望存入一些資料時磁碟滿了;使用者可能輸入不恰當的資料. ruby> file = open("some_file") ERR: (eval):1:in `open': No such file or directory - some_file
Time of Update: 2017-01-18
一個實變數由@開頭,它的範圍限制在 self 對象內.兩個不同的對象,即使屬於同一個類,也可以擁有不同值的實變數.從對象外部來看,實變數不能改變甚至觀察(比如, Ruby的實變數從來不是公用的),除非方法由程式員明確聲明.像全域變數一樣,實變數在初始前的值是nil. Ruby的實變數用不著聲明.這暗含著對象的彈性結構.實際上,每個實變數都是在第一次出現時動態加入對象的. ruby> class InstTest
Time of Update: 2017-01-18
全域變數由$開頭.它們可以在程式的任何位置訪問到.在初始化前,全域變數有一個特殊的值 nil. ruby> $foo nil ruby> $foo = 5 5 ruby> $foo 5
Time of Update: 2017-01-18
我們總是希望對未知事件分類.當它發生時,向其它方法傳遞一塊作為參數的代碼是最容易地解決方案,也就是說我們希望像處理資料一樣處理代碼. 一個新的過程對象可以通過proc建立: ruby> quux = proc { | print "QUUXQUUXQUUX!!!\n" | } &
Time of Update: 2017-01-18
實體的行為取決於其類,但很多時候我們知道一個特定的實體需要特定的行為.在很多語言裡,我們必須陷入另外再定義一個類的麻煩裡,即使它只是用來接著實體化一次.在Ruby裡,我們可以賦予任何對象屬於其自身的方法. ruby> class SingletonTest | def size
Time of Update: 2017-01-18
物件導向是一個挺讓人迷惑的措辭.叫一切東西都是物件導向會讓別人覺得你很時髦. Ruby 聲稱自己是物件導向的指令碼語言;但究竟什麼才是"物件導向"? 我們已經有了各種各樣的答案,但所有這些恐怕都歸結於同一件事.與其快速地概括它,不如讓我們先花點兒時間考慮一下傳統的編程模式.傳統意義上,一個編程問題從出現的各種資料,以及處理資料的過程(procedures)著手.在這一模式下,資料是呆板,被動和無用的;它完全的求助於那個體積龐大的,主動的,邏輯性的,全能的過程體.這一
Time of Update: 2017-01-18
迭代器並不是Ruby發明的.它廣泛地運用於各種物件導向語言.在Lisp中也有,只是不這麼叫罷了.儘管如此,迭代器的概念並不為許多人熟悉,因此我們將在此做較為詳細的介紹. 你知道,動詞 iterate 的意思是做同一件事許多遍,因此,iterator就是用來將同一件事做許多次的東西. 當我們寫代碼時,我們需要各種環境下的迴圈.在C裡,我們用for或者while.比如, char *str;
Time of Update: 2017-01-18
這章我們將討論更多的Ruby流程式控制制. case 我們用case語句測試有次序的條件.正如我們所見的,這和C,Java的switch相當接近,但更強大. ruby> i=8 ruby> case i | when 1, 2..5 | print "1..5\n"
Time of Update: 2017-01-18
現在我們將前面的一些樣本程式的代碼坼開來分析一下. 下面的例子出現在簡單的例子一節. def fact(n) if n == 0 1
Time of Update: 2017-01-18
你通過在方括弧裡列出元素並用逗號將它們相互隔開來建立一個數組. Ruby的數組可以適應不同的物件類型 ruby> ary = [1, 2, "3"] [1, 2, "3"] 就像前面提到的字串一樣.數組也可以相乘或相加 ruby> ary + ["foo", "bar"]
Time of Update: 2017-01-18
我們再看一個更有趣的程式.這次我們來測試一個字串是否和一個由簡明模式(concise pattern)編碼產生的描述相匹配. 在這些模式(pattern)裡,一些字元或字元組合都有獨特的意義,包括: 複製代碼 代碼如下:[] 範圍描述符 (比如,[a - z] 表示在a 到 z 範圍內的一個字母)
Time of Update: 2017-01-18
Ruby將字串像數字一樣處理.我們用單引號('...')或雙引號("...")將它們括起來.ruby> "abc" "abc"ruby> 'abc' "abc"單引號和雙引號在某些情況下有不同的作用.一個由雙引號括起來的字串允許字元由一個前置的斜杠引出,而且可以用#{}內嵌運算式.而單引號括起來的字串並不會對字串作任何
Time of Update: 2017-01-18
讓我們寫一個計算階乘的函數.對於階乘的數學定義如下: n! = 1 (當 n==0 時) = n * (n-1)! (其它情況)
Time of Update: 2017-01-18
首先,你得檢測Ruby是否已經安裝了.在shell的提示符處(這裡表示為"%",所以不要敲入%),敲入 % ruby -v (-v 告訴解譯器列印出Ruby的版本),然後敲斷行符號.如果安裝了Ruby,你會看見類似如下的資訊: % ruby -v ruby 1.6.6 (2001-12-26) [i586-linux]
Time of Update: 2017-01-18
Ruby是一種功能強大的物件導向的指令碼語言,她可以使您方便快捷地進行物件導向編程.有時使用像Smalltalk、Eiffel或C++這樣正式的物件導向語言來開發一些小項目顯得有點"小題大作",而Ruby剛好可以滿足這些物件導向編程的需求.當然了,您也可以使用Ruby進行普通的面向過程編程. Ruby的文本處理能力極強,與Perl不分伯仲.同時,Ruby的文法簡單,還有異常處理以及迭代器等構造,使編程變得簡單明了.
Time of Update: 2017-01-18
一、方法Ruby 的方法定義允許為參數設定預設值,不過在帶有預設值的參數後面不能出現不帶有預設值的參數(允許 * 和 &),也就是說下面的方法定義是不被允許的,解釋時會出現 parse error。 還有一點與 C# 不同的是,方法定義不能出現在方法調用的後面。# parse errordef Display(args1="proshea", args2)end# 允許def Display(args1="proshea", *args2)end# 允許def
Time of Update: 2017-01-18
突然發現,ruby也不錯,我有點打算想學下了介紹 這是一個短小的Ruby入門,完全讀完只需20分鐘。這裡假設讀者已經安裝了Ruby,如果你沒有安裝的話,請在閱讀文前訪問Ruby官方網站進行下載並安裝。 互動Ruby 開啟IRB(互動式Ruby外殼): 如果你使用Mac OS X,那麼請開啟終端視窗輸入irb; 如果你使用Linux,那麼請開啟shell輸入irb; 如果你使用windows,那麼請在開始菜單中找到Ruby->fxri,並執行它。
Time of Update: 2017-01-18
Ruby的安裝可以去Ruby的官方網站下載Ruby1.56的Windows安裝包,安裝安畢後,開啟Dos視窗,輸入ruby -v顯示 ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32] 的話就說明Ruby已經安裝成功,版本號碼為Ruby 1.96。 安裝完後,在 開始菜單->程式 裡面出現了 Ruby-18
Time of Update: 2017-01-18
ruby的圖書不多,下面這些都是我從網路上收集而來的 , 下載直接點擊圖片即可 Programming Ruby, Second Edition : ruby的入門讀物,第二版,學ruby必讀(UPDATED)Agile Web Development with Rails : 第二版 beta.基於rails1.2(UPDATED)The Ruby Way 現在是更新到ruby 1.8.4的第二版, 是bd7lx共用的,
Time of Update: 2017-01-18
在Ruby中類執行個體變數、類執行個體方法和類變數、類方法的區別比較微妙,而且用法也有相當的區別。本文探討一下他們的定義和基本的使用情境,以拋磚引玉... 一.類執行個體變數和類變數 類變數大家都很熟悉了,就是在類定義中用@@開頭的變數。類變數是用於儲存類的全域資訊,它只屬於類,不同與類執行個體變數(即用@開頭定義的變數)每一個類的對象都有一份資料。