|
精华帖 (0) :: 良好帖 (8) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-06-30
引用 但是David后来认为"a || a = b"应该更恰当些. 楼主是咬字头咬过头了,在一个极端的情况下(即a没有定义)写了一段代码然后造成了一些混乱,你又怎知david没有个潜台词是a has defined呢? 不过举的那个hash有默认值的||=这个问题是应该提起注意。 |
|
| 返回顶楼 | |
|
时间:2008-07-04
回复不见了?
ruby按我说就是不断句的之乎者也,陷阱多多,没多少前途。最终还是死在这个陷阱上。 ruby的兴起完全是因为ror,离开ror,ruby啥都不是。 还是看好groovy,同为动态语言,却严谨的多。不必咬文嚼字玩文字游戏。 |
|
| 返回顶楼 | |
|
时间:2008-07-04
geszJava 写道 回复不见了?
ruby按我说就是不断句的之乎者也,陷阱多多,没多少前途。最终还是死在这个陷阱上。 ruby的兴起完全是因为ror,离开ror,ruby啥都不是。 还是看好groovy,同为动态语言,却严谨的多。不必咬文嚼字玩文字游戏。 希望楼上能把“陷阱多多”一一列举而出,好有益于用ruby干活的劳苦大众。 |
|
| 返回顶楼 | |
|
时间:2008-07-04
我之所以在这里“咬文嚼字”,是为了追求对语言的精确理解。
对于象ruby这种特性丰富的语言,没有象JavaScript那样有一个定义严谨的规范来作参考,只能靠“咬文嚼字”了。 说“离开ror,ruby啥都不是“这个严重不同意. 单独来看ruby本身就是一门非常优秀的脚本语言,就“陷阱”而言并不比C++多,语言的表达能力并不在Perl之下而可读性非常之高,唯一缺憾是速度较慢,但对于脚本语言来说这个问题并不显著。 我开始用ruby的时候,根本就不知道什么是rails. |
|
| 返回顶楼 | |
|
时间:2008-07-10
说实话,看完觉得有点没事找事来说的感觉。
参考一些开源的rails代码,经常可以看到 @page = param[:page] @page ||= 1 这样的代码,就是处理分页参数的。如果没有传page,就把@page设为1. 本身意思就很明瞭。 不过也有收获,代码还是写得简单清晰一点好。楼主分析辛苦了。 |
|
| 返回顶楼 | |
|
时间:2008-07-10
这Spec简单了点,对讨论的问题没有帮助:
http://github.com/rubyspec/rubyspec/tree/master/1.8/language/or_spec.rb |
|
| 返回顶楼 | |
|
时间:2008-07-21
所以, "a ||= b"的正确展开式应该为: "if a then a else a = b end"
想不到吧? 楼主还是学学基本知识吧, 这是想当然的东西, 还想不到? |
|
| 返回顶楼 | |
|
时间:2008-07-21
>> h = Hash.new(1)
=> {} >> h[:x] => 1 >> h[:x] ||= 2 => 1 >> h => {} 陷进 ? h[:x] 是未定义的, a ||= b 相当于 a = b || a 这里因为你给Hash加了默认值,所以当然会输出1了。 看看下面的代码: >> h = Hash.new => {} >> h[:x] ||= 2 => 2 >> h[:x] = h[:x] || 2 => 1 >> h => {:x=>1} >> 你上面这相当于给hash赋值了key-value对。 真不知道你说了写什么,把Hash搞明白再来吧。 |
|
| 返回顶楼 | |
|
时间:2008-07-21
blackanger 写道 真不知道你说了写什么,把Hash搞明白再来吧。 before catching what they are talking about, why did you demand others " 把Hash搞明白再来吧"? plz read CAREFULLY before speak like this. |
|
| 返回顶楼 | |
|
时间:2008-07-21
to blackanger:
请看清楚标题,以及仔细阅读所有帖子再发表意见吧,否则就会和我犯下同样的错误。 这里讨论的是a ||= b的generic展开式,这个展开式不应该因a,b为特殊情况而有所区别,即语义的严格定义。 我想此贴的结论已经很明确了,如果对归纳的最终展开式还有什么异议,欢迎发表高见。 另外,对别人的知识妄下论断不会对让你显得更权威有什么帮助;同样,嵌入签名图片里的“资深会员”字样也不会。 |
|
| 返回顶楼 | |










