ifa>3then p '大'end ifa>3then p '大'else p '小'end // if 是有返回值的,所以可以直接打印 p(ifa>3then p '大'else p '小'end) p(ifa>4 '大' elseof a>2 '中' else '小' end)
1 2 3 4
b = if a>3then'big'else'small'end b = a>3 ? 'big' : 'small' returnif error // 因为 if 有返回值,所以可以这么简写,如果有 error 就 return 出去 return unless success // 另一种写法 // if not success
case 语句
z = case x when 1 ‘1’ when 1,2 ‘2 or 3’ else ‘hi’ end
Ruby 的循环
循环
.times
1 2 3 4 5
7.times do p '一次' end 7.times { p '一次' } // 用花括号代替 do end // 等价于 [1,2,3,4,5,6,7].map(v => console.log(v))
获取 i,和插值
|i|
1 2 3 4 5 6
7.times do |i| p"#{i + 1}次" // 注意要用双引号,不能用单引号 end 7.times { |i| p"#{i + 1}次" }
.each (一般用于遍历数组)
1 2 3 4 5 6 7
name = ['a', 'b'] names.eachdo |name| p name end (1..7).eachdo |i| // 两个点构造类似数组的东西,其实他是一个 range((1..7).class) p i end
for
1 2 3 4 5 6 7 8 9
// 1 到 5 for i in1..5do p i end // 遍历数组 names = ['a', 'b'] fornamein names p name end
while / until
1 2 3 4 5 6 7 8 9 10 11
i = 1 while i<3 p i i+=1 end // 和下面等价,与 if,unless 一对对应 j =1 until j>=3 p j j+=1 end