← Writing

Ruby] - Constant & Variable

命名方式: 常見的命名方式有 snake_case 跟 camelCase 這兩者。 在 Ruby 大部分是使用小寫英文字母以及底線來組合變數名稱, 例如像是 my_new_post,蛇式命名(snake_case)。 Constant 常數 命名規則:常數是大寫英文字母開頭! 在 Ruby,常數的...

ruby

命名方式: 常見的命名方式有 snake_case 跟 camelCase 這兩者。 在 Ruby 大部分是使用小寫英文字母以及底線來組合變數名稱, 例如像是 my_new_post,蛇式命名(snake_case)。


Constant 常數

  • 命名規則:常數是大寫英文字母開頭!

    Name = "apple"
    Height = 150
    
    # 類別
    class Sky
    end
    
    # 模組
    module Cloud
    end
    
  • 在 Ruby,常數的內容是可以修改而且不會發生錯誤:

    Food = "蘋果"
    Food = "香蕉" # warning: already initialized constant Food
    

    雖然有 warning 訊息,但還是可以把香蕉指定給帶有蘋果常數 Food

  • 常數要從後面插入字串也可以:

    Food = "蘋果"
    Food << "香蕉"
    Food # "蘋果香蕉"
    

Variable 變數

| Types | Example | Default | Remark | | :----------------------------: | :--------------------: | :-----: | :------------: | | Local Variable 區域變數 | name | none | 非大寫字母開頭 | | Global Variable 全域變數 | $name | nil | 有 $ 符號 | | Instance Variable 實體變數 | @name | nil | 有 1 個 @ 符號 | | Class Variable 類別變數 | @@name | none | 有 2 個 @ 符號 | | Pseudo Variable 虛擬變數 | nil, self, true, false | - | - |

  • 虛擬變數通常有特別的用途或意義,內容不能被改變

    nil = 123 # Can't change the value of self (SyntaxError)
    self = "me" # Can't change the value of self (SyntaxError)
    
  • 使用變數 在 Ruby 使用變數,不需要特別宣告或是指定型態,直接拿來用就可以了。 在變數命名規則上,常使用英文字母、數字或底線的組合 (蛇式命名)。或是非英文字母也可以,例如:

    a = 1
    puts a # 1
    
    me = "Viii"
    puts me # Viii
    
    x, y, z = [2, 4, 6] # 一次指定多個變數需加上[]
    puts z # 6
    

Available Scope 有效範圍

以區域變數為例子:

1. 將變數定義在 say_hello 方法裡:

def say_hello
    name = "Viii"
    puts "Hi, This is #{name}!"
end
say_hello # Hi, This is Viii!
puts name # undefined local variable or method `name' for main:Object (NameError)

line 6: 定義在 say_hello 方法裡的 name 變數,在離開 say_hello 方法就失效。

2. 將變數定義在外層:

name = "Viii"
def say_hello
    puts "Hi, This is #{name}!" # undefined local variable or method `name' for main:Object (NameError)
end
puts name # Viii
say_hello

line 3: 定義在外層的變數 name,在 say_hello 方法裡找不到而失效。


參考資料

變數、常數、流程控制、迴圈