Ruby Ruby 不用花括号表达代码块,是一个设计缺陷吗

lilijreey · 2018年10月17日 · 最后由 zouyu 回复于 2018年10月18日 · 2239 次阅读

花括号 {} 只能在一行中使用,如果跨越多行则需要使用 do ... end, 感觉不同意,而且没有感觉 do...end 有什么好处。 修正:花括号和 do..end 可以相互替代。上面的说法不对。

俗话说,先问是不是,再问为什么

3.times { |i|
  puts i
}
3.times do |i| puts i; end

都可以,只是习惯或约定不这样写而已

我就喜欢多行用大括号而不是 do end,尤其是支持🌈括号的编辑器里看着非常舒爽,这也是为什么我讨厌 robocop

所提一句,代码块不能 return 是最受不了的

nouse 回复

花括号好像只能用于 block 的场景,if while 什么的好像不能用。

是的,ruby 的语法比 js 还要垃圾几个档次

nouse 回复

这个括号高亮真的需要,不然一大堆括号真的看起来很累。

另外感谢你推荐的书,基本看完了。面很广,内容十分实用,覆盖了很多我的知识盲点,看的时候很有趣。👍

{}do ... end 的区别只在于跟前面的方法结合的优先级,简单来说 {} 会“紧贴”它前面的方法,而 do ... end 更加宽松。

我看楼主之前有过几个帖子讨论语言的设计优劣问题。但说实话纠结这些并没有太多意义,更多是结合个人偏好的主观问题。倒不如多了解下各种语法的客观差异,避免踩坑,然后总结出一套符合自己偏好的编程方式和风格干活。

@darkbaby123 没准儿楼主是打算设计一门博采众长的语言,所以在做调研呢。

nightire 回复

没有没有,和大家侃大山

nouse 回复

2.6 好像支持了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号