Ruby ——Fizz Buzz (1)

數據類型

  • Number 數值型
    整型( Fixnum ), 浮點型(Float
  • String 字符串型
    類* String* 的對象。雙引號標記的字符串允許替換和使用反斜線符號,單引號標記的字符串不允許替換,且只允許使用 \ 和 ' 兩個反斜線符號。
    可以使用序列#{expr}替換任意 Ruby 表達式的值為一個字符串。
  • Ranges 范圍型
    一個范圍表示一個區間,通過設置一個開始值和一個結束值來表示。
    使用 s..e構造的范圍從開始值運行到結束值(包含結束值)。
    使用 s...e構造的范圍從開始值運行到結束值(不包含結束值)。
    當作為一個迭代器使用時,范圍會返回序列中的每個值。
  • Symbols
    :symbol它適合于在程序中多次重復使用的自定義變量。
    無論該符號被使用了多少次,在Memory內都只有一個symbol。
  • true、false和nil
  • Array 數組
    數組字面量通過[]中以逗號分隔定義,且支持range定義。
    (1)數組通過[]索引訪問
    (2)通過賦值操作插入、刪除、替換元素
    (3)通過+,-號進行合并和刪除元素,且集合做為新集合出現
    (4)通過<<號向原數據追加元素
    (5)通過*號重復數組元素
    (6)通過|和&符號做并集和交集操作(注意順序)
  • Hash
    Ruby 哈希是在大括號內放置一系列鍵/值對,鍵和值之間使用逗號和序列 => 分隔。
    尾部的逗號會被忽略。

變量

在 Ruby 中,可以通過在變量或常量前面放置 # 字符,來訪問任何變量或常量的值。

  • 全局變量(Global variable)
    • 全局變量以 $ 開頭。未初始化的全局變量的值為 nil
    • 給全局變量賦值會改變全局狀態。
  • 實例變量(Instance variable)
    實例變量以 @ 開頭。未初始化的實例變量的值為 nil
  • 類變量(Class variable)
    • 類變量以 @@ 開頭,且必須初始化后才能在方法定義中使用。
    • 類變量在定義它的類或模塊的子類或子模塊中可共享使用。
    • 引用一個未初始化的類變量會產生錯誤。
  • 局部變量(Local variable)
    • 局部變量以小寫字母或下劃線 _ 開頭。
    • 局部變量的作用域從 class、module、def 或 do 到相對應的結尾或者從左大括號到右大括號 {}。
    • 當調用一個未初始化的局部變量時,它被解釋為調用一個不帶參數的方法。
    • 對未初始化的局部變量賦值也可以當作是變量聲明。
    • 局部變量的生命周期在 Ruby 解析程序時確定。
  • 常數(Constant)
    • 常量以大寫字母開頭,不能定義在方法內。
    • 定義在類或模塊內的常量可以從類或模塊的內部訪問,定義在類或模塊外的常量可以被全局訪問。
    • 引用一個未初始化的常量會產生錯誤。
    • 訪問方法#{variable}

條件判斷

  • if...else 語句
    falsenil 為假,其他值都為真。
    如果 conditional 為真,則執行 code。如果 conditional 不為真,則執行 else 子句中指定的 code
if conditional [then] 
    code...
[elsif conditional [then] 
    code...]...
[else 
    code...]
end
  • if修飾符
    如果 conditional 為真,則執行 code
code if condition
  • unless語句
    和 if式作用相反,即如果 conditional 為假,則執行 code。如果 conditional 為真,則執行 else 子句中指定的 code
unless conditional [then] 
    code
[else  
    code ]
end
  • unless修飾符
    如果 conditional 為假,則執行 code
code unless conditional
  • case語句
    case先對一個 expression 進行匹配判斷,然后根據匹配結果進行分支選擇。
    它使用 ===運算符比較 when 指定的 expression,若一致的話就執行 when 部分的內容。
case expression
[when expression [, expression ...] [then] 
    code ]...
[else 
    code ]
end

注釋

單行注釋以 # 字符開始,直到該行結束。

# 這是一個單行注釋。

多行注釋以=begin=end 語句包含。

=begin
這是一個多行注釋。可擴展至任意數量的行。
=end

循環

  1. while語句:當 conditional 為真時,執行 code
while conditional [do] 
    code
end

語法中 do 可以省略不寫。但若要在一行內寫出 while 式,則必須以 do 隔開條件式或程式區塊。

  • while修飾符:當 conditional 為真時,執行 code
# 方法一:
code while condition
# 方法二:
begin 
    code 
end while conditional

code 會在 conditional 判斷之前執行一次。

  • util語句:當 conditional 為假時,執行 code
until conditional [do] 
    code
end
  • util修飾符:當 conditional 為假時,執行 code
# 方法一:
code until conditional 
# 方法二:
begin 
    code
end until conditional

code 會在 conditional 判斷之前執行一次。

  • for語句:
    先計算表達式得到一個對象,然后針對 expression 中的每個元素分別執行一次 code
for variable [, variable ...] in expression [do] 
      code
end

示例:允許 i 的值從 0 到 5(包含 5)。

for i in 0..5 
    code 
end 

for 循環不會為局部變量創建一個新的作用域。

  • each語句
    針對 expression 中的每個元素分別執行一次 code
(expression).each do |variable[, variable...]| 
      code 
end
  • break, next語句
    break:終止最內部的循環。
    next:直接跳到循環的下一個迭代。
  • redo語句:重新開始最內部循環的該次迭代,不檢查循環條件。

Reference

Ruby 數據類型
Ruby 判斷
Ruby 循環

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • FreeCodeCamp - Basic JavaScript 寫在前面: 我曾經在進谷前刷過這一套題,不過當時只...
    付林恒閱讀 16,531評論 5 28
  • 第一部分 打好基礎 Laying the Foundation 第一章 歡迎進入軟件構建的世界 Welcome t...
    白樺葉閱讀 4,695評論 0 17
  • 一、心得體會1、今天完成了什么? 看了6個小時的鎬頭書18章、21章、22章,我想快速把書看一遍,然后看看哪些是需...
    柳輝閱讀 430評論 0 0
  • 近日,斯丹賽攜手廣東省第二人民醫院成功使用CAR-T細胞治療技術醫治兩位復發性費陽急性淋巴細胞白血病病人,相關研究...
    可愛天使_15a5閱讀 1,080評論 0 0
  • 之前總覺得自己什么都懂 也覺得自己特別厲害總是不愿改變 認為是什么所謂的真我 天天怨天尤人 我這么好為什么沒人對我...
    情一書閱讀 162評論 0 0