Time of Update: 2017-01-18
傾向數組及雜湊的字面標記法(除非你需要傳遞參數到它們的建構函式中)。 # bad arr = Array.new hash = Hash.new # good arr = [] hash = {} 當你需要元素為單詞(沒有空格和特殊符號)的數組的時候總是使用 %w 的方式來定義字串數組。應用這條規則僅僅在兩個或多個數組。 # bad STATES = ['draft', 'open', 'closed'] # good STATES = %
Time of Update: 2017-01-18
Regex的內建支援通常只限於指令碼語言如Ruby,Perl和awk等,這是一個恥辱:儘管Regex很神秘,但它是一個強大的文本處理工具。通過內建而不是通過程式庫介面來支援它,有很大的不同。Regex只是一種指定字元模式的方法,這個字元模式會在字串中進行匹配。在Ruby中,通常在斜線之間(/pattern/)編寫入模式(pattern)來建立Regex。同時,Ruby就是Ruby,Regex是對象並且可以當作對象來操作。比如,可以使用如下的Regex來編寫入模式,它會匹配包含Perl或Pytho
Time of Update: 2017-01-18
繼承允許你建立一個類,作為另一個類的精鍊(refinement)和特化(specialization)。例如,在我們的自動點唱機系統中,有“歌曲”這一概念,被封裝在Song類中,然後,隨著市場的成長,我們需要提供卡拉OK的支援。一首卡拉OK歌曲和其他歌曲沒什麼兩樣(它只是沒有主唱的音軌,對此我們不必關心)。不過,它還包括對於的一套歌詞以及時間資訊。當我們的自動點唱機在播放一首卡拉OK歌曲時,歌詞應該隨音樂滾動顯示在點唱機前的螢幕上。解決這個問題的一種方法是定義一個新的類KaraokeSong,就
Time of Update: 2017-01-18
Watir的使用環境搭建1、watir環境工具安裝包:1) ruby186-26.exe下載地址:http://files.rubyforge.vm.bytemark.co.uk/rubyinstaller/2)
Time of Update: 2017-01-18
Ruby 注釋注釋會對 Ruby 解譯器隱藏一行,或者一行的一部分,或者若干行。您可以在行首使用字元( # ):# 我是注釋,請忽略我。或者,注釋可以跟著語句或運算式的同一行的後面:name = "Madisetti" # 這也是注釋您可以注釋多行,如下所示:# 這是注釋。# 這也是注釋。# 這也是注釋。# 這還是注釋。下面是另一種形式。這種塊注釋會對解譯器隱藏 =begin/=end 之間的行:=begin這是注釋。這也是注釋。這也是注釋。這還是注釋。=endRuby 中文編碼用 Ruby
Time of Update: 2017-01-18
視圖、模型與控制器裡不應使用語言相關設定與字串。這些文字應搬到在 config/locales 下的語言檔案裡。當 ActiveRecord 模型的標籤需要被翻譯時,使用activerecord 範圍:en: activerecord: models: user: Member attributes: user: name: "Full name"然後 User.model_name.human 會返回 "Member" ,而
Time of Update: 2017-01-18
基本的Rails應用程式現在讓我們啟動一個基本的Rails應用。為了更好的展示,我使用Ruby 2.2.0和Rails 4.1.1在終端運行: $ rvm use 2.2.0 $ rails new && cd docker-test建立一個基本的控制器: $ rails g controller welcome index……,然後編輯 routes.rb ,以便讓該項目的根指向我們新建立的welcome#index方法: root 'welcome#index' 在終端運行
Time of Update: 2017-01-18
我們知道頂級域,定義域的self是啥?複製代碼 代碼如下:puts self #mainputs self.class #Object我們知道當一個方法被調用的時候,如果沒有對象接受,預設就是self,如:複製代碼 代碼如下:def tell_me_who puts selfendtell_me_who
Time of Update: 2017-01-18
概括、ruby中的基礎資料型別 (Elementary Data Type)都是類類型,只不過為了書寫和閱讀的方便,為基礎資料型別 (Elementary Data Type)提供了較為簡潔的書寫方式而已。一、數實值型別整數支援二進位,八進位,十進位,十六進位,根據整數的大小動態決定整數是Fixnum類型還是Bignum類型。浮點數支援科學計數法,小數點後至少有一個數字。數實值型別繼承圖如下:複製代碼 代碼如下:Numeric |--Integer &
Time of Update: 2017-01-18
1、類變數名以@@開始,一個類變數被這個類所有的執行個體對象共用;執行個體變數名以@開始,每個執行個體對象有各自不同的執行個體變數;2、類變數在使用前必須初始化,否則在使用時會報錯;而執行個體變數如果沒有初始化,則使用時返回nil;3、類變數是私人的,在類外無法直接存取,可以通過類方法和執行個體方法訪問;複製代碼 代碼如下:class B @@number = 11 @@num = 22 &
Time of Update: 2017-01-18
時間複雜度:Θ(n^2) Bubble sort 複製代碼 代碼如下:def bubble_sort(a) (a.size-2).downto(0) do |i| (0..i).each do |j| a[j], a[j+1] = a[j+1], a[j] if a[j] > a[j+1]
Time of Update: 2017-01-18
利用動態規划算法,實現最短編輯距離的計算。複製代碼 代碼如下:#encoding: utf-8#author: xu jin#date: Nov 12, 2012#EditDistance#to find the minimum cost by using EditDistance algorithm#example output:# "Please input a string: "# exponential# "Please input the
Time of Update: 2017-01-18
演算法導論上的偽碼改寫而成,加上導論的課後練習第一題的解的建構函式。複製代碼 代碼如下:#encoding: utf-8=beginauthor: xu jindate: Nov 11, 2012Optimal Binary Search Treeto find by using EditDistance algorithmrefer to <<introduction to algorithms>>example output:"k2 is the root of
Time of Update: 2017-01-18
#建立一個222.rb檔案並且輸入字元file = File.open("222.rb","w+")file.puts "123\nwadwa\n12124124\ndwdw"file.close#輸出222.rb的內容File.open("222.rb","r+") do |file|while line = file.getsputs lineendend#直接用IO操作檔案IO.foreach("222.rb") do |line|puts line if line =~/abc/
Time of Update: 2017-01-18
Ruby提供了兩個存取層級的網路服務。在一個較低的水平,可以訪問底層的作業系統,它可以實現連線導向和無連線協定的用戶端和伺服器支援基本的socket。Ruby也具有程式庫,提供更進階別的訪問特定的應用程式級的網路通訊協定,如FTP,HTTP等。這篇教程介紹 Ruby Socket編程概念及講解一個簡單的執行個體。
Time of Update: 2017-01-18
Ruby做為物件導向語言,肯定要對對象進行相關的操作,這時候就涉及到方法了。調用方法 - 對象.方法名(實參1,實參2,...,實參n)方法的分類:1. 執行個體方法:顧名思義,就是由執行個體來調用的方法。例如,“10, 20, 30, 40”.split(",")2. 類方法:就是由類來調用的方法。當建立一個執行個體時,則需要調用類方法。複製代碼 代碼如下:a = Array.new #建立一個新數組File.rename(oldname, newname)
Time of Update: 2017-01-18
擷取當前日期和時間:以下是一個簡單的例子,以獲得當前的日期和時間:#!/usr/bin/ruby -wtime1 = Time.newputs "Current Time : " + time1.inspect# Time.now is a synonym:time2 = Time.nowputs "Current Time : " + time2.inspect這將產生以下結果:Current Time : Mon Jun 02 12:02:39 -0700
Time of Update: 2017-01-18
迴圈結構在程式設計語言中是不可或缺的,所以Ruby中的迴圈也有其自訂的規則。而我們關注迴圈結構,要知道兩個因素:1) 迴圈的條件;2) 迴圈執行的內容Ruby有一些方式來實現迴圈結構體:1. times方法在前面已經有提到過了,文法如下:複製代碼 代碼如下:迴圈次數.times do
Time of Update: 2017-01-18
1. 快速擷取Regex的匹配值通常我們使用Regex,都是先match,然後再取結果,但是這樣有時候會拋異常,看下面例子:複製代碼 代碼如下:email = "Fred Bloggs "email.match(//)[1] # => "fred@bloggs.com"email[//, 1] # => "fred@bloggs.com"email.match(/(x)/)[1] # => NoMethodError [:(]email[/(x)/, 1] # =>
Time of Update: 2017-01-18
一、數字Ruby支援整數和浮點數,整數可以是任意長度 一定範圍內的整數以二進位存放,它們屬於fixnum類型,當超出這個範圍時則自動轉換為bignum類型 表達方式:符號+一串字元,數字串中的底線會被忽略,(首碼包括:0表示八進位, 0x表示十六進位, 0b表示二進位)123_456_789_123_345_789 # Bignum0xaabb # 十六進位 也可以通過在前面加上問號來得到ASCII碼字元對應的整數值和逸出序列的值?a # 一般字元?\n # 分行符號 (0x0a)?\C-a #