呵呵,你举的例子很好啊。不过和你之前的说法自相矛盾... 那你说他们毫无例外的都没有加括号,这是谁错了呢?
如果一定让我两者选其一,我宁可选择你介绍的代码示例,反正不推荐的用法都用了,还加那两个括号干嘛?只要了解 Ruby 运算符的结合性,就会知道,几乎所有情况下,不加括号的表达式很少出错,因为一开始 Ruby 就是为不加括号而设计的。
但是如果让我自己写,我一定会写两行,因为写在一起除了可能会让你出错,没有任何好处可言。这是个条件表达式,又不是方法,或者 block, 这样的代码,在 if 语句内赋值,甚至会给我一个错觉,是不是声明了一个条件表达式内的本地变量??
, 如果不这样写法,我根本不可能有这样的错觉。
我不是果粉
, 而且平心而论,咱社区以及网上这种 Apple 一边倒的风气,谈不上哪里不好,但是对于 Ruby 自身的普及绝对是一件大大的坏事情!!
至于苹果装 linux 和苹果装 Windows , 这概念上相差还是老远了,Linus 看重的是苹果的做工,再加上两个系统原本就是一家,一脉相承,都是 UNIX 的子孙,统称UNIX LIKE
系统,纯 CLI 方面差别自然不大,linus 肯定不是为了去用 Mac 的图形界面才使用 Mac 的。
就算不谈两个系统的渊源,极端点说,人家是牛人,就算没有驱动,人家可以自己写,无论什么电脑,在他们这帮人手里,肯定是效益最大化,硬件只是一个平台,软件才是精髓。这点和绝大多数买苹果装 XP 或者 WIN7 的使用者完全不同,这种人我见过好多,基本上都是只会 QQ 斗地主的电脑 BC, 有的连打字都不会,这种情况下,99% 的用户都是为了显摆装逼的。
支持,支持!!
bash 的确很不错,之前我写了不少简单的函数,一股脑全部放倒.bashrc 里面,又乱,又没有条理,而且文件好大了,不易于管理,所以后我就把这些函数提取了出来,单独作为脚本放倒 PATH 里面,提取出来之后,突然发现,很多命令彼此之间经过很少的改动,就可以管道起来,实现比原先有趣的多的功能。然后就这个思路发展下去,精简了很多函数,但是实现了比之前多很多的功能,真的很过瘾。现在想想,这不单有Keep It Simple Stupid
的精髓,还有点重构的意思。重构的核心思想,不也是将每一个具体功能的实现,提取到一个单独的实例方法
中,也只有等你提取出来之后,才能体会到一大片之前几乎不可能注意到的艳阳天.
Ubuntu 你都觉得不好用,那让我这个用 Slackware 的人情以何堪 ?
我这个连包管理都没有,图形界面说是 XFCE, 我知识用个 Terminal 而已。下一步 Terminal 我也打算省掉了,因为 Emacs 24 自带的 Term 或者 Shell-mode 已经非常好了。
可是我感觉现在越用越爽,做个什么事情,效率越来越高,为什么呢?因为你了解越多,你会越喜欢他。其实我挺初级,但是我知道我现在已经深刻理解了 Unix 的哲学,并且方向是对的,使用方式也是没错的。
用鼠标点来点去,你永远无法成为 Linux 或 Mac 下真正的高手,Windows 下就另说了,不一样的哲学。
相信我,就直接把 Win7 格式化了,换成 linux 好了。断了其他所有的念想,用不了一个月,你就入门了。
最近,在 bash shell 脚本编写方面小有心得,主要是为了体现一种在 Linux 下工作的极致效率
, 换句话说,把 CLI 进行到底,不似 Mac, 图形界面也很好,这才是 Linux 的精髓。
学过 Ruby 之后,反过来看 Bash shell, 真的是很优秀的。至少在我目前解决的这些问题的场合 (都是小问题,典型的,Linux 下面常用的那个几个命令来回组合,通过管道来实现需求,也就是 Linux 常说的K.I.S.S, 我估计咱社区很多人都不知道 KISS 是啥意思吧.)
扯了半天,就算我想分享,大家估计也不见得感兴趣... 我发现我可能离咱社区的主流思潮
越来越远了。
p.s.
楼上跟主题有关的总共有 7 条回复。(不连我), 只有第一条在说 Ruby, 我多么希望这是 RailsConf.
我怎么没感觉到呢?我虽然没有系统的看过国外有关 Ruby 的博文,不过也算经常 Google 到一些东西,到也没发现,不过总的来说,我还是看书多,看文章少,也许这不是空穴来风。不过,就算是事实,又能代表什么? 又有什么意义? 本来就不是新手的玩意儿。
#16 楼 @gaicitadie 盖茨他爹,我觉得你听认真啊。没事儿也发发技术贴啥的。尤其是有关 Python 和 Ruby 的。咱也学习学习. 顺便提一句,我就挺认死理的,而且崇尚经典,你想找人讨论,可以找我啊
Emacs 无论是<<-
还是<<
都是可以支持的。而且针对 heredoc 参数之后的其他参数,缩进支持也不错。
现在只要是多行字符串,我都倾向于使用 heredoc,很爽呀。
没看楼上内容,不过看楼主标题,估计要讲的不是乱
, 是灵活。
Ruby 这门语言的特点是灵活,同一个问题可以用很多种优雅
的方法来实现。
怎么说呢?这就像武侠里的练功,练到后来,随性而发,在最适合的场合,使用相对最适合,最优雅的方法. Ruby 给你提供了实现这种选择的基石,剩下的就看你怎么发挥了。
你说你用过 delphi, 可是你竟然不习惯 end, 其实这两者不仅仅是 end 相似,还有个共同点是:设计层次, 比较严谨而且具有一致性, 但是使用上语法却非常灵活
(Object pascal 的语法,和 C, C++ 完全是同样级别的)
p.s. 顺便再说一句,不管是{}, 还是 begin end, do end, 这些都不是让人敲的,要不然,要 snippet 干嘛?
我怎么发现,我即使把 Rails 搞明白了,也不想研究那些个东西。
没别的,就是觉得 Web 开发太复杂,太繁琐,理论性的东西太多了,反倒是感性的,有趣的东西反而少。
还是 Ruby 自身有趣一些。
......
方法都让大家想完了..
来个 loop 版本的吧。
x = a1.zip(a2, a3).to_enum
y = []
loop { y << x.next.reduce(:+) }
Ruby语言入门
我看过一点,书本身還是有特色的,就是坑爹的翻译质量太差!! 到处错误。有机会,我打算看看英文版。
Ruby Programming-向ruby之父学程序设计
作为入门,是不二的选择,我看完双飞燕后都看过这本书,一天不到就看完了。挺好的。(这本书的序是 Matz 写的)
最后,说一句,别听一楼的,那是瞎掰. 连 Matz 本人都说:这本书如果完全读懂, 那么你就精通Ruby了
(这不是我瞎掰的,请自行翻阅原书 266 页) , 我怀疑大部分说双飞燕是入门
, 应该都没有从头到尾通读过双飞燕。这么说吧,我到目前,也就仅仅读过这么一本中文版本的 Ruby 书籍 (捎带看了不少 ri 文档), 但自我感觉绝对不是入门那么简单了 (光笔记就 15000+ 行了). 如果 Ruby 编程语言作为入门,那么至少要非常熟悉一门其他语言才可以。没信心的话,这本留着最后看吧。咱社区大把的人没看过这本书,Rails 照样写的刷刷的。我是子愧不如的。
不过,如果想提高或进阶,这本书是必读的。但是看你描述,最好不要一开始就读。