Time of Update: 2017-01-13
之前我們見過方法的調用,它會讓程式從調用方法的地方跳到方法的定義主體那裡。程式並不是按直線啟動並執行,執行的順序會受到一些規則還有一些被稱為控制流程的程式設計結構的影響。Ruby 的控制流程有下面這些:條件執行(Conditional execution)— 根據運算式的真實性執行。迴圈(Looping)— 一塊兒重複執行的代碼。迭代(Iteration)— 調用方法的時候給它提供一塊兒代碼,方法在它執行的時候可以多次調用這塊代碼。異常(Exceptions)
Time of Update: 2017-01-13
Ruby 對待檔案與 I/O 操作也是物件導向的。Ruby 的 I/O 系統IO 類處理所有的輸入與輸出資料流。IO 類IO 對象表示可讀可寫的到磁碟檔案,鍵盤,螢幕或裝置的串連。程式啟動以後會自動化佈建 STDERR,STDIN,STDOUT 這些常量。STD 表示 Standard,ERR 是 Error,IN 是 Input,OUT 是 Output。標準的輸入,輸出,還有錯誤流都封裝到了 IO 的執行個體裡面。做個實驗:>> STDERR.class=> IO>&
Time of Update: 2017-01-13
Ruby 裡面主要的可調用的對象是 Proc 對象,Lambdas,方法對象。Proc 是獨立的代碼序列,你可以建立,儲存,可以作為方法的參數,你願意的話,也可以使用 call 方法執行它。Lambdas 跟 Proc 對象很像,Lambda 其實就是 Proc 對象,不過稍有不同。Proc 對象用 Proc.new 建立一個 Proc 執行個體:pr = Proc.new { puts "inside a proc's block" }上面的代碼塊就是 Proc
Time of Update: 2017-01-13
學習ruby類相關的文法遇到的關於類相關變數的一點小體會。ruby很靈活,文法看似很隨意,比如看下下面的代碼class Foo attr_accessor :name def initialize @name = '小明' end def say &
Time of Update: 2017-01-13
學習與開發 Ruby on Rails 應用的過程是在本地電腦上完成的。也就是你需要在本地電腦上建立 Rails 項目,運行它,然後學習或去做真正的開發。兩種方法,一是可以直接在本地電腦上安裝 Rails 項目的所有工具,然後直接在本地電腦上運行 Rails 項目。另外, 我們可以使用 Docker 去 Compose 一個 Rails 項目。在本地直接運行 Rails 項目需求我在 macOS 上測試了整個過程。你需要:安裝 Ruby安裝 Xcode安裝 rails開啟終端,用 Ruby 的
Time of Update: 2017-01-18
用英語命名標識符。 # bad - identifier using non-ascii characters заплата = 1_000 # bad - identifier is a Bulgarian word, written with Latin letters (instead of Cyrillic) zaplata = 1_000 # good salary = 1_000
Time of Update: 2017-01-18
建立字串對象有多種途徑,最常用的可能是使用字串字面量(literals),即一組單引號或雙引號之間的字元序列。這兩種形式的區別在於,當構造字面量時,Ruby對字串所做處理的多少有所不同。Ruby對單引號串處理得很少。除了極少的一些例外。鍵入到字串字面量的內容就構成了這個字串的值。Ruby對雙引號字串有更多的處理。首先,它尋找以反斜線開始的序列,並用二進位值替換它們。其中最常見的是\n,它會被斷行符號分行符號替換掉。當一個包含斷行符號分行符號的字串輸出時,\n會強制換行。puts "And
Time of Update: 2017-01-18
一個常量由大寫字母開頭.它應最多被賦值一次.在Ruby的目前的版本中,常量的再賦值只會產生警告而不是錯誤(non-ANSI版的eval.rb不會報告這一警告) ruby>fluid=30 30 ruby>fluid=31 31 ruby>Solid=32 32 ruby>Solid=33 (eval):1:
Time of Update: 2017-01-18
局部變數由小寫字母或底線(_)開頭.局部變數不像全域和實變數一樣在初始化前含nil值. ruby> $foo nil ruby> @foo nil ruby> foo ERR: (eval):1: undefined local variable or method `foo' for&
Time of Update: 2017-01-18
在這裡可以下載到適合您的最新的 Ruby 版本,當前穩定的版本是 1.8.6 。下載前請先閱讀 Ruby 開源許可 。Ruby 原始碼如果您欲使之與您的平台更為相容或者需要專一設定您的環境,那麼從原始碼安裝是最好的解決方案。如果有預先做好的 packages 需要安裝到您的平台上,這也是一個好的方法。Ruby 1.8.6 (md5: 23d2494aa94e7ae1ecbbb8c5e1507683) 穩定版 (推薦) 穩定版快照 這裡的 tar'ed 和 gzip'ed
Time of Update: 2017-01-18
代理模式Proxy代理模式是一種結構型設計模式,主要解決的問題是:在直接存取對象時帶來的問題,比如說:要訪問的對象在遠端機器上。在物件導向系統中,有些對象由於某些原因(比如對象建立開銷很大,或者某些操作需要安全控制,或者需要進程外的訪問),直接存取會給使用者或者系統結構帶來很多麻煩,我們可以在訪問此對象時加上一個對此對象的訪問層。如下圖:
Time of Update: 2017-01-18
Ruby 注釋注釋會對 Ruby 解譯器隱藏一行,或者一行的一部分,或者若干行。您可以在行首使用字元( # ):# 我是注釋,請忽略我。或者,注釋可以跟著語句或運算式的同一行的後面:name = "Madisetti" # 這也是注釋您可以注釋多行,如下所示:# 這是注釋。# 這也是注釋。# 這也是注釋。# 這還是注釋。下面是另一種形式。這種塊注釋會對解譯器隱藏 =begin/=end 之間的行:=begin這是注釋。這也是注釋。這也是注釋。這還是注釋。=endRuby 中文編碼用 Ruby
Time of Update: 2017-01-18
method_missing是Ruby元編程(metaprogramming)常用的手法。基本思想是通過實現調用不存在的方法,以便進行回調。典型的例子是:ActiveRecord的動態尋找(dynamic finder)。例如:我們有email屬性那麼就可以調用User.find_by_email('joe@example.com'),雖然, ActiveRecord::Base並沒有一個叫做find_by_email的方法。respond_to?
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: 2016-12-19
標籤:gpo awb owb lap was rom 分享 iii zrm Chapter2: RindaIncluding 7 parts:"Hello World" the Rinda
Time of Update: 2016-12-05
標籤:lan out rails 映射 rail ref head current sts 一、基本介紹_msearch就是multi search
Time of Update: 2016-07-24
標籤:一、利用passenger-install-nginx-module 安裝: 先安裝passenger: gem install passenger,如果沒有許可權就在前面加上sudo。 由於nginx不支援動態模組載入,所以要使用passenger來進行編譯安裝由passenger修改過的nginx 用passenger安裝nginx: passenger-install-nginx-module 按照提示,一步步安裝。
Time of Update: 2016-07-23
標籤:轉自:http://www.jianshu.com/p/728184da1699Gem介紹:Gem是一個管理Ruby庫和程式的標準包,它通過Ruby Gem(如 http://rubygems.org/ )源來尋找、安裝、升級和卸載軟體包,非常的便捷。Ruby 1.9.2版本預設已安裝Ruby Gem,如果你使用其它發行版本,請參考“如何安裝Ruby Gem”。Ruby gem包的安裝方式:所有的gem包,會被安裝到 /[Ruby
Time of Update: 2015-09-07
標籤:字串處理函數1.返回字串的長度str.length => integer 2.判斷字串中是否包含另一個串str.include? other_str => true or false"hello".include? "lo" #=> true"hello".include? "ol" #=> false"hello".include? ?h #=> true 3.字串插入:str.insert(index,
Time of Update: 2016-06-14
標籤: 還沒開始系統性的學習Ruby,最近在看metasploit架構的exploit會涉及到Ruby指令碼,也就硬著頭皮一遍查閱資料一遍做些筆記吧。 Ruby字串中存在chop和chomp的內建函數。我在http://www.w3cschool.cc/ruby/ruby-string.html中得到的關於Ruby字串chop和chomp的用法介紹如下: