Time of Update: 2017-01-18
Time 類在 Ruby 中用於表示日期和時間。它是基於作業系統提供的系統日期和時間之上。該類可能無法表示 1970 年之前或者 2038 年之後的日期。本教程將讓您熟悉日期和時間的所有重要的概念。建立當前的日期和時間下面是擷取當前的日期和時間的簡單一實例:#!/usr/bin/ruby -w time1 = Time.new puts "Current Time : " + time1.inspect # Time.now 是一個同義字time2 = Time.nowputs
Time of Update: 2017-01-18
雜湊(Hash)是類似 "employee" => "salary" 這樣的索引值對的集合。雜湊的索引是通過任何物件類型的任意鍵來完成的,而不是一個整數索引,其他與數組相似。通過鍵或值遍曆雜湊的順序看起來是隨意的,且通常不是按照插入順序。如果您嘗試通過一個不存在的鍵訪問雜湊,則方法會返回 nil。建立雜湊與數組一樣,有各種不同的方式來建立雜湊。您可以通過 new 類方法建立一個空的雜湊:months = Hash.new您也可以使用 new 建立帶有預設值的雜湊,不帶預設值的雜湊是
Time of Update: 2017-01-18
Ruby 全域變數全域變數以 $ 開頭。未初始化的全域變數的值為 nil,在使用 -w 選項後,會產生警告。給全域變數賦值會改變全域狀態,所以不建議使用全域變數。下面的執行個體顯示了全域變數的用法。#!/usr/bin/ruby $global_variable = 10class Class1 def print_global puts "Global variable in Class1 is #$global_variable" endendclass Class2 def
Time of Update: 2017-01-18
環境配置在使用 Ruby 編碼或解碼 JSON 資料前,我們需要先安裝 Ruby JSON 模組。在安裝該模組前你需要先安裝 Ruby gem,我們使用 Ruby gem 安裝 JSON 模組。 但是,如果你使用的是最新版本的 Ruby,可能已經安裝了 gem,解析來我們就可以使用以下命令來安裝Ruby JSON 模組:$gem install json使用 Ruby 解析 JSON以下為JSON資料,將該資料存放區在 input.json 檔案中:{ "President": "Alan
Time of Update: 2017-01-18
每個正在系統上啟動並執行程式都是一個進程。每個進程包含一到多個線程。線程是程式中一個單一的順序控制流程程,在單個程式中同時運行多個線程完成不同的工作,稱為多線程。Ruby 中我們可以通過 Thread 類來建立多線程,Ruby的線程是一個輕量級的,可以以高效的方式來實現並行的代碼。建立 Ruby 線程要啟動一個新的線程,只需要調用 Thread.new 即可:# 線程 #1 代碼部分Thread.new { # 線程 #2 執行代碼}# 線程 #1
Time of Update: 2017-01-18
SMTP(Simple Mail Transfer Protocol)即簡易郵件傳輸通訊協定,它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。Ruby提供了 Net::SMTP 來發送郵件,並提供了兩個方法 new 和 start: new 方法有兩個參數: server name 預設為 localhost &
Time of Update: 2017-01-18
Ruby 是純物件導向的語言,Ruby 中的一切都是以對象的形式出現。Ruby 中的每個值都是一個對象,即使是最原始的東西:字串、數字,甚至連 true 和 false 都是對象。類本身也是一個對象,是 Class 類的一個執行個體。本章將向您講解所有與 Ruby 物件導向相關的主要功能。類用於指定對象的形式,它結合了資料標記法和方法,把資料整理成一個整齊的包。類中的資料和方法被稱為類的成員。Ruby
Time of Update: 2017-01-18
什麼是 XML ?XML 指可延伸標記語言 (XML)(eXtensible Markup Language)。可延伸標記語言 (XML),標準通用標記語言 (SGML)的子集,一種用於標記電子檔案使其具有結構性的標記語言。它可以用來標記資料、定義資料類型,是一種允許使用者對自己的標記語言進行定義的源語言。 它非常適合全球資訊網傳輸,提供統一的方法來描述和交換獨立於應用程式或供應商的結構化資料。XML解析器結構和APIXML的解析器主要有DOM和SAX兩種。 &
Time of Update: 2017-01-18
Ruby提供了兩個層級訪問網路的服務,在底層你可以訪問作業系統,它可以讓你實現用戶端和伺服器為連線導向和無連線協定的基本通訊端支援。Ruby 統一支援應用程的網路通訊協定,如FTP、HTTP等。不管是高層的還是底層的。ruby提供了一些基本類,讓你可以使用TCP,UDP,SOCKS等很多協議互動,而不必拘泥在網路層。這些類也提供了輔助類,讓你可以輕鬆的對伺服器進行讀寫。接下來就讓我們來學習如何進行 Ruby Socket 編程什麼是
Time of Update: 2017-01-18
編寫一個最簡單的例子1. 建好如下檔案夾注意:lib目錄下必須有個和你gem名字一樣的rb檔案。複製代碼 代碼如下: $ cd hola $ tree . ├── hola.gemspec └── lib
Time of Update: 2017-01-18
在去年的YOW Melbourne開發人員大會上,我參加了一些研習班。這些研習班由@coreyhaines和
Time of Update: 2017-01-18
簡介: 假設您是一名 C++ 開發人員,您需要使用 Ruby 快速執行一些原型設計。當您拿起一本 Ruby 參考書籍(比如 Pickaxe)或瀏覽 Ruby 網站時,會看到一些熟悉的構造,比如類聲明、線程支援和異常處理。正當您認為自己瞭解 Ruby 的工作原理之時,您意識到了,您 Ruby 代碼中的並發機制與 Boost 線程工作原理不一樣,catch 和 throw 也與它們看上去的大不相同,而且其他人在其 Ruby 指令碼中各處使用了名為 self 的關鍵詞。歡迎來到 Ruby
Time of Update: 2017-01-18
Web 應用程式大多是 IO 密集型的,利用 Ruby 多進程+多執行緒模式將能大幅提升系統輸送量。其原因在於:當Ruby 某個線程處於 IO Block 狀態時,其它的線程還可以繼續執行。但由於存在 Ruby GIL (Global Interpreter Lock),MRI Ruby 並不能真正利用多線程進行並行計算。JRuby 去除了 GIL,是真正意義的多線程,既能應付 IO Block,也能充分利用多核 CPU 加快整體運算速度。上面說得比較抽象,下面就用例子一一加以說明。Ruby
Time of Update: 2017-01-18
MiniTest 是新一代的 Ruby 測試架構,它已經成為 Ruby 1.9 的內建測試架構,據說它也將成為Rails 4的預設測試架構,可謂前途一片光明。MiniTest 為什麼成為最新 Ruby 和 Rails 的首選,它有哪些迷人的東西呢?Ruby 1.8時代,Ruby 和 Rails 的預設測試架構都是 TestUnit,TestUnit 曆史悠久,它最大的問題是太慢,太臃腫了,它包含了一堆現在很少使用的第三方庫,比如GTk v1, GTk v2,
Time of Update: 2017-01-18
Ruby 是一種表達能力很強的語言,這得意於它異常豐富的運算子和文法糖,雖然 Ruby 一直把最小驚訝原則作為它的哲學之一,但還是常常看到讓人驚訝不已,難於理解的代碼,這可能是因為對它運算子和語句優先順序理解不透導致,今天就和大家聊一聊 Ruby 運算子和語句的優先順序。先看一句簡單的代碼,猜一猜它的輸出是什麼。複製代碼 代碼如下: puts {}.class很多人一定以為結果是 Hash,但實事上結果是空,不信可以在 irb 裡試一試。再看一段代碼。複製代碼 代碼如下:puts "
Time of Update: 2017-01-18
在規則引擎中,Ruby 的閉包使用特別頻繁,而且有 block,Proc和 lambda 等後幾種形式的用法,很讓人困惑。為了深入理解代碼,再次認真學習了一下 Ruby 的閉包,特別是 block,proc 和 lambda 幾種用法的異同,這次的周記就和大家分享一下心得。閉包是 Ruby 相對其它語言特別優勢之一,很多語言有閉包,但是唯有 Ruby 把閉包的優勢發揮得淋漓盡致。Ruby 的哲學之一:同一個問題現實中有多種解決方案,所以 Ruby
Time of Update: 2017-01-18
p 和 puts 是 Ruby 中特別常用的方法,很多童鞋可能認為它們是差不多的,使用的時候也不加註意,但是仔細考究起來,它們是有明顯差別的。先舉一個例子複製代碼 代碼如下:class Foo def inspect "foo from inspect" end def
Time of Update: 2017-01-18
很早就知道 ruby 有 4 種相等性判斷方法,分別是:“==”,“===”,“equal?” 和 “eql?”,平常程式中都有使用,但是感覺對其缺乏深入理解,今天讀 rails 部分源碼的時候拿捏不定其中一個判斷的意思,於是趁機深入研究了一番,總算覺得比較清楚了,今天做一下筆記,以作備忘。“==” 最常見的相等性判斷“==” 使用最頻繁,它通常用於對象的值相等性(語義相等)判斷,在 Object 的方法定義中,“==” 比較兩個對象的 object_id
Time of Update: 2017-01-18
sass為CSS的賦予了動態語言的特性,如變數、繼承、運算、函數等,更方便CSS的編寫和維護!sass安裝因為sass依賴於ruby環境,所以裝sass之前先確認裝了ruby。安裝ruby http://www.jb51.net/article/61501.htm安裝完ruby之後,在開始菜單中,找到剛才我們安裝的ruby,開啟Start Command Prompt with Ruby然後直接在命令列中輸入複製代碼 代碼如下:gem install
Time of Update: 2017-01-18
範例程式碼:複製代碼 代碼如下:require "thread" puts "ProAndCon" queue = Queue.new #用隊列Queue實現線程同步 producer = Thread.new do 10.times do |i| sleep