方法的定义
def showName(name)
puts name
end
showName("黄忠")
黄忠
方法默认值
def showName(name0,name1="关羽",name2="张飞")
puts name0,naem1,naem2
end
showName("刘备")
刘备
关羽
关羽
自定义方法
def myloop
while true
yield # 执行块
end
end
num = 1 # 初始化num
myloop do
puts "num is #{num}" # 输出num
break if num > 100 # num 超过 100 时跳出循环
num *=2 # num 乘2
end
参数不确定的方法
用“* 变量名”的形式来定义参数个数不确定的方法
def a(a, *b, c)
[a, b, c]
end
p a(1, 2, 3, 4, 5) #=> [1, [2, 3, 4], 5]
p a(1, 2) #=> [1, [], 2]
关键字参数方法
def area2(x: 0, y: 0, z: 0)
xy = x * y
yz = y * z
zx = z * x
(xy + yz + zx ) * 2
end
p area2(x: 2, y: 3, z: 4) #=> 52
p area2(z: 4, y: 3, x: 2) #=> 52 (改变参数的顺序)
p area2(x: 2, z: 3) #=> 12 (省略y)