Time of Update: 2018-12-07
1 、 break 跳出當層迴圈 2 、next 忽略本次迴圈的的剩餘部分,開始下一次迴圈 3 、redo 重新開始迴圈,還是從這一次開始 4 、retry 重頭開始這個迴圈體 5 、$array<< value 將 value 作為數組的一個元素加入數組 $array 中 6 、attr_writer :username 相當於 def username=(value)
Time of Update: 2018-12-07
ruby語言跟c#的一些重要差別在於:1.ruby是動態語言,c#是靜態語言--即對象在new出來以後,ruby還可以動態給對象執行個體添加一些屬性或方法(javascript也是如此)2.ruby中刻意弱化了變數類型這個概念,預設情況下變數/方法都不需要聲明具體(返回)類型,但其實在ruby內部,會自動根據變數的值配置類型。(可以通過 “puts
Time of Update: 2018-12-07
看了幾天ruby,發現c#中很多一直被稱道的文法特性,ruby早在幾年前就有了: 1.c#中的params關鍵字 class Program { static void Main(string[] args) { Console.WriteLine(Sum()); Console.WriteLine(Sum(3,6)); Console.Read(); }
Time of Update: 2018-12-07
用ROR架構做開發,基本上只要SciTE+資源管理員+命令列 就可以了,但如果您確實一時很難忘記IDE環境,而且機器配置又不咋地,建議您重返三劍客時代,找找當年DreamWeaver的感覺 :) http://rubyweaver.gilluminate.com/ 到這上面下載rhtml for
Time of Update: 2018-12-07
#靜態方法的4種寫法class Test def Test.StaticMethod1 puts "Test.StaticMethod1" end def self.StaticMethod2 puts "Test.StaticMethod2" end class << Test def StaticMethod3 puts "Test.StaticMethod3" end end class << self
Time of Update: 2018-12-07
你可能會覺得下面的圖表比較有意思,因為它是分別用三種程式設計語言(Ruby, Java, C/C++)寫的埃拉托色尼質數過濾演算法(譯註:Sieve of Eratosthenes)的效能分析圖,(本文的最後附有相應代碼)
Time of Update: 2018-12-07
什麼是JRuby JRuby是一個純Java實現的Ruby解譯器。通過JRuby,你可以在JVM上直接運行Ruby程式,調用Java的類庫。很多Java編寫的Ruby IDE都是使用JRuby來解釋文法的。JRuby,JVM下的一個開源Ruby解譯器,能夠在Java裡面使用Ruby類庫。就像標準的Ruby解譯器一樣,除開使用Ruby調用本地方法(C代碼)或者Java類庫以外,Ruby代碼都能夠在JRuby裡面正確執行。為什麼JRuby除了適合用來開發面向Internet 的Web 應用程式之外,
Time of Update: 2018-12-07
Ruby 的標識名用來指向常量,變數,方法,類和模組。標識名的首字母用來協助我們確定標識所指向內容的範圍。 Ruby 的標識名區分大小寫。 Ruby 使用一個約定的來協助它區別一個名字的用法: a). 名字前面的第一個字元表明這個名字的用法。 b). 局部變數、方法參數和方法名稱應該用一個小寫字母開頭或者用一個底線開頭。 c). 全域變數用美元符作為首碼 $。 d). 執行個體變數用 @ 開頭。
Time of Update: 2018-12-07
今天被人投訴說 blog 多日未更新,影響了閱讀情緒,偶趕緊開動起來 ^_^# Part oneaFile = File.new("C:\\1.txt","w") aFile.puts "the 1" aFile.puts "the 2"aFile.close # Part twoaFile = File.new("C:\\2.txt","w") puts "the 1" puts "the
Time of Update: 2018-12-07
動態語言之所以“動態”,最明顯的特徵就是:類執行個體的行為/屬性可以在new出後,動態修改!個人覺得這種處理相對java/c#(靜態語言)來說,更符合現實世界。比如:一個人剛出生時,除了哭、吃奶等這些基本原始本能,其它的幾乎全都不會(原始本能可理解類定義中最開始定義的屬性和方法),但隨著時間推移,學會了看書,走路,說話...(相當於新增了方法/屬性),再往後的人生誰也無法預料,一切都是未知的,所以不太可能象靜態語言那樣,在運行前就事先把所有的屬性/方法全寫齊,甚至一個人後來失憶,把原先學會的東西
Time of Update: 2018-12-07
閉包的一個重要特徵是:過程(方法)內部定義的變數,即使在方法調用完成以後,仍然可以繼續引用到!(即延長了生命週期)def method(n)puts "n=#{n}"; #測試用return proc{|i| n +=i } #關鍵:proc是一個過程對象,只能由"委託"用call來調用,這裡在過程內部引用了參數變數n,將會在多次call該過程後,保留對n的引用,形成閉包!endaDelegate = method(0);#可以理解為c#中的委託,同時該語句會初始化n為0puts
Time of Update: 2018-12-07
ruby的數組基本使用,跟c#中的數組比起來,最不習慣的區別在於允許負索引(跟javascript到有幾分相似)arr=[3,4,5,6,7,8,9]puts arr[0] # 3puts arr.first # 3puts arr[arr.length-1] # 9puts arr[arr.size-1] # 9puts arr.last #9puts arr[-1] #9,下標為-1,即相當於取最後一個元素puts arr[-2] #8,倒著取第二個數print arr[1..3]
Time of Update: 2018-12-07
ruby中的module與.net中的namespace有點類似,可以用來區分同名但屬於不同開發人員(或組織)的代碼。下面的代碼,定義了一個Me模組,裡面的sqrt與Math模組中的sqrt重名,另外還有一個重名常量PI#定義一個模組(有點類似.net中的命名空間)module Medef sqrt(num1,num2=-1)return "num1=#{num1},num2=#{num2}"endPI = 3.14;endputs Math::PI
Time of Update: 2018-12-07
先來看別名,ruby中可以給方法或全域變數起一個別名,有意思的是:方法別名定義後,即使對應的方法在後面的代碼中重新定義(即修改內部實現)後,別名仍然可以調用到修改前的方法,而全域變數則不行。def meth puts "This is meth"endalias:orgin_meth:methmeth #=> This is methorgin_meth #=>This is methdef meth puts "a new meth"endmeth #=> a new
Time of Update: 2018-12-07
共同點:都是用來螢幕輸出的。不同點:puts 輸出內容後,會自動換行(如果內容參數為空白,則僅輸出一個分行符號號);另外如果內容參數中有轉義符,輸出時將先處理轉義再輸出p 基本與puts相同,但不會處理參數中的轉義符號print 基本與puts相同,但輸出內容後,不會自動在結尾加上分行符號s = "aaaa\nbb\tbb"p sp "****************"puts sp "****************"print
Time of Update: 2018-12-07
symbol是啥就不深入的討論了,只簡單說說symbol的好處ruby內部對於每個對象,都會有一個數字id用來標識並區分,可以用xxx.object_id來查看 puts "0001".object_idputs "0001".object_idputs "0001".object_idputs
Time of Update: 2018-12-07
【譯者注】這是一篇讚美 Ruby 的文章!!!看完再噴不遲 請注意:這是一篇主觀意識的文章。它的目的並不是要說服你使用或者不使用Ruby,或者其他任何技術。這篇文章所涉及到的環境是 Web 開發,而不是通用的編程。我想要通過這篇文章解釋這些年來非 Ruby 社區對於 Ruby 的一些看法,並且提醒人們以開放的心態來面對新的事物。敬請欣賞!我最近做了一個15分鐘的演講“我喜愛的 Ruby 語言以及它的生態系統”。很顯然我的言論讓忠實的 PHP,.NET 和 Java 開發人員感到不安。他們對
Time of Update: 2018-12-07
1.1.Rails1.1 建立一個Rails應用程式$ rails app_name可選項:-d, database=xxx 指定安裝一個資料庫(mysql oracle postgresql sqlite2 sqlite3 ), 預設情況下是資料庫-r, ruby-path= 指定Ruby的安裝路徑,如果沒有指定,scripts使用env去找Ruby-f, freeze (凍結)freezes Rails在vendor/rails目錄1.2 API Documentation$
Time of Update: 2018-12-07
一.鐵道1.1 建立一個Rails應用程式$ rails app_name可選項:-d, database=xxx 指定安裝一個資料庫(mysql oracle postgresql sqlite2 sqlite3 ), 預設情況下是資料庫-r, ruby-path= 指定Ruby的安裝路徑,如果沒有指定,scrīpts使用env去找Ruby -f, freeze (凍結)freezes Rails在vendor/rails目錄1.2 API Documentation$
Time of Update: 2018-12-07
Matz是一個專業的軟體工程師,在日本有名的open source公司netlab.JP工作,而且他在日本也是一個高姿態的open source 佈道者。他參與了幾個開源軟體項目,包括cmail,這是一個基於emacs的郵件使用者代理,完全用emacs lisp 編寫。Ruby也是他的第一個在日本以外的國家如此出名的作品。 在1993年的時候,有一次他和同事們談論關於指令碼語言(scripting