Table of Contents
1. Methods
methods 類似 JavaScript 的 function,def 開頭,end 結尾:
1.1 default return value
如果 def 和 end 之間沒有任何東西,那 default return value 為 nil
def method
end
p method
# nil
1.2 return
在 Ruby 中,method 會自動 return 最後一行,即使沒有 return 也一樣
def method
return "Hello, world!"
end
p method
# "Hello, world!"
def method
"Hello, world!"
end
p method
# "Hello, world!"
1.3 call method
call method 的時候,可以加 (),也可以不加 (),不加 () 的時候用, 把 argument 隔開。
通常 method 有 argument 的時候會建議加 (),可讀性會比較好:
# 不加 () 的寫法
def method arg1, arg2
"Hello, #{arg1} world! #{arg1}"
end
p method "Jimmy", "Wow"
# "Hello, Jimmy world! Jimmy"
# 加 () 的寫法
def method(arg1, arg2)
"Hello, #{arg1} world! #{arg1}"
end
p method("Jimmy", "Wow")
# "Hello, Jimmy world! Jimmy"
1.4 local variable
在 method 中定義的變數,只存在於 method 中:
str = "Hello, world!"
def method
str = "Wow"
str
end
p method
# "Wow"
p str
# "Hello, world!"
2. 基本 Object 介紹
如同在 Ruby 教學 1 – 環境架設及 Ruby 介紹 提到的,Ruby 是一個 OOP 的程式語言,幾乎所有的東西都是由 Object 構成,接下來就簡單介紹一下 Object 通用的 methods。
2.1 .class
可以用 .class 來存取該 object 是由哪個 class new 出來的:
str = "Hello"
p str.class
# String
int = 10
p int.class
# Integer
float = 3.14
p float.class
# Float
p true.class
# TrueClass
p false.class
# FalseClass
p nil.class
# NilClass
range = 1..10
p range.class
# Range
arr = [1, 2, 3]
p arr.class
# Array
hash = {"name" => "Jimmy"}
p hash.class
# Hash
symbol = :name
p symbol.class
# Symbol
2.2 .superclass
可以用 superclass 存取目前 class 是由哪個 class 繼承下來的:
p 5.class
# Integer
p 5.class.superclass
# Numeric
p 5.class.superclass.superclass
# Object
p 5.class.superclass.superclass.superclass
# BasicObject
p 5.class.superclass.superclass.superclass.superclass
# nil
2.3 .methods
.methods 會列出目前這個 object 存在的所有 methods
puts 5.methods
# 列出存在 Integer 的所有 methods
3. 參考資料
如果覺得我的文章有幫助的話,歡迎幫我的粉專按讚哦~謝謝你!