Ruby method

Ruby 教學 3 – method, 基本 object 介紹

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. 參考資料

Learn to Code with Ruby

如果覺得我的文章有幫助的話,歡迎幫我的粉專按讚哦~謝謝你!

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top