设为首页 加入收藏

TOP

Ruby菜鸟入门指南(二)
2017-10-09 14:01:03 】 浏览:806
Tags:Ruby 菜鸟 入门 指南
大括号形式和do...end形式。

大括号形式:

{ |a, b|
    a.to_i <= b.to_i
}

do...end形式:

do |a, b|
    a.to_i <= b.to_i
end

乍一看,大括号的形式有点丑。一般来说,只在单行块的时候用大括号的形式:

{ |a, b| a.to_i <= b.to_i }

Ruby中的每个方法都可以接受一个块。块要紧接着方法调用的后面,不是方法的参数之一。例如

f(1, 2, 3) do |a, b|
    a.to_i <= b.to_i
end

上面的示例中省略括号也是合法的:

f 1, 2, 3  do |a, b|
    a.to_i <= b.to_i
end

但像下面这样把块用括号括起来作为最后一个参数就是错误的:

f(1, 2, 3, { |a, b| a.to_i <= b.to_i }) #语法错误

块与方法一个很大的区别是块支持闭包:

min = 18

array.select do |v| 
    v >= min #访问外层min变量 
end

TODO 在方法定义中用yield关键字调用块

迭代器

Ruby中没有提供Java和java script当中三段for循环的模式。所谓三段for循环,是指下面java script的for循环:

for(i = 0; i <= 9; i++) {
    console.log(i);
}

Ruby中没有提供这样的方式。但这并没有什么痛苦的,因为Ruby提供了基于块的迭代方式。例如上面的代码,在Ruby中可以写成:

0.upto(9) do |i|
    puts i
end

Ruby中的集合,都支持这样传递代码块的迭代方式。Ruby中的集合包括Range、Array、Hash、String、etc。例如上面的示例可以改写成Range的each迭代形式:

(0..9).each do |i| 
    puts i
end

TODO -ect方法:collect, inject, select

真假值

Ruby中用于if、unless、while的条件判断中,真假值的规则很简洁:

  • nil和false为假

  • 其余都为真

TODO list

我懒!

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇web自动化测试:watir+minitest(.. 下一篇Ruby Gem命令

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目