Ruby 有一個重要特性 Convention Over Configuration

希望去做到一個約定成俗的習慣/慣例,省去過多的設定,讓程式更為簡潔。(ex:route maping)

Ruby命名也有一定的慣例

  • $name:全域變數
  • @name:實例變數,作用域僅限定於 self 指示的物件
  • name:區域變數(小寫字母或底線開頭;初始化前並沒有 nil 值)
  • Name:常數(大寫開頭;重覆定義時會出現警告)
# 全域變數 vs 實例變數 vs 區域變數
ruby> $foo
	=> nil
ruby> @foo
  => nil
ruby> foo
ERR: (eval):1: undefined local variable or method `foo' for main(Object)
ruby> Foo = 2
	=> 2
ruby> Foo = 3
  => warning: alread initialized constant Foo
  => 3