锁定老帖子 主题:Ruby惯用法
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-09-20
谢谢大家的补充和斧正 :^) 我相应更新了一些内容
python的list comprehension是我个人很喜欢的syntax sugar,它主要是map和filter的复合化身,和inject/reduce/fold应该没瓜葛。 关于name space管理,最近关于Rails的controller和model为什么用name space分割很麻烦有不少争论。另外有些plugin也不注意合理使用name space包裹。Rails下Module.constants已经包含太多所谓根命名,这个数量越多冲突可能性越高。 firebody: 辛苦你翻译了,我想java的fp扩展里应该有类似功能。我原文说’返回两个结果‘确实容易让人困扰,已澄清。 |
|
返回顶楼 | |
发表时间:2006-09-20
还有借鉴了Perl的:
names = %w[ruby rails java python cookoo firebody] 等同于: names = ["ruby", "rails", "java", "python", "cookoo", "firebody"] |
|
返回顶楼 | |
发表时间:2006-09-20
buaawhl 写道 。。。 搜索了一下,ruby unshift,结果出来很多 array unshift 的结果。 到底是没有找到 $:.unshift('buildscript') 的具体说明。 你没找错啊,$:是一个Array类型的全局变量,unshift是Array的一个实例变量。 找文档无需Google的,ri一下就OK了: ri Array#unshift |
|
返回顶楼 | |
发表时间:2006-09-20
cookoo 写道 python的list comprehension是我个人很喜欢的syntax sugar 我觉得Python的list comprehension很丑陋,英语单词太多,复杂一点的list comprehension就能写成一长串,反而不好阅读。 好像还是Haskell的list comprehension看着更明白 |
|
返回顶楼 | |
发表时间:2006-09-20
Suninny 写道 还有借鉴了Perl的:
names = %w[ruby rails java python cookoo firebody] 等同于: names = ["ruby", "rails", "java", "python", "cookoo", "firebody"] %w, %r, %Q, %q, %s, %x还挺多。 另外不光是括号、中括号,键盘上能看到的符号差不多都支持: %w@ruby rails java python cookoo firebody@ %w#ruby rails java python cookoo firebody# %w~ruby rails java python cookoo firebody~ ... 真是方便。 |
|
返回顶楼 | |
发表时间:2006-09-20
njmzhang 写道 cookoo 写道 python的list comprehension是我个人很喜欢的syntax sugar 我觉得Python的list comprehension很丑陋,英语单词太多,复杂一点的list comprehension就能写成一长串,反而不好阅读。 好像还是Haskell的list comprehension看着更明白 python的list comprehension语法偏自然语言,haskell的偏数学表达,两个各有千秋,但都比ruby没有强。当然list comprehension本身也不是万能,不能把什么都往里面塞,复杂的还是老实用map之类的好。 |
|
返回顶楼 | |
发表时间:2006-09-20
qiezi 写道 Suninny 写道 还有借鉴了Perl的:
names = %w[ruby rails java python cookoo firebody] 等同于: names = ["ruby", "rails", "java", "python", "cookoo", "firebody"] %w, %r, %Q, %q, %s, %x还挺多。 另外不光是括号、中括号,键盘上能看到的符号差不多都支持: %w@ruby rails java python cookoo firebody@ %w#ruby rails java python cookoo firebody# %w~ruby rails java python cookoo firebody~ ... 真是方便。 @@这个太离谱了吧。。。常用只有%w{},别的很少用,不就整个字符串嘛。 而且这个再加上字符串格式化那些%一堆或日期格式化里的%一堆,天哪,还是不要增加记忆负担了。 |
|
返回顶楼 | |
发表时间:2006-09-20
cookoo 写道 @@这个太离谱了吧。。。常用只有%w{},别的很少用,不就整个字符串嘛。 而且这个再加上字符串格式化那些%一堆或日期格式化里的%一堆,天哪,还是不要增加记忆负担了。 主要是用在正则表达式里。有时候正则表达式里要匹配'/'字符,为了不写成\/,就把默认的//改成%r{},如果里面还要匹配{},就可以改成%r()。圆括号和方括号又容易看错成正则表达式里面的东西,于是改成@。。。 |
|
返回顶楼 | |
发表时间:2006-09-20
extionsions也是一个扩展包, cookoo 有没有在用?
|
|
返回顶楼 | |
发表时间:2006-09-20
好用么?我看了一下,大部分都已经包含在facet/core里面了。
另外好像不能精细require? 这样的话在rails里用会引起一些命名冲突。 |
|
返回顶楼 | |