查看完整版本: Ruby陷阱[CHM格式].中文

blackanger 2007-8-14 22:49

Ruby陷阱[CHM格式].中文

[attach]233[/attach]

from Ruby trap :
----------------------------------------------------------------------------------传说中的分界线------------------------------------------------------------------------
[b]1。and / or的优先级[/b]
[code]
p :a if true || false &&  false
p :b if true or false and false
  #=> :a
[/code]

&&的优先级高于||,但是or和and的优先级则相同,所以应该写成:
[code]
p :b if (true or false) and false
[/code]

[b]2。Ruby trap在Ruby语法有变之后,把陷阱又变成了新的陷阱。比如:[/b]
[code]
obj = Object def obj.Foo
  p "ok"
end
def Bar
  p "ok"
end
[/code]
我们用::符号来引用内建类或原始类是不会出错的。比如:
[code]
def  str
   ::String.new("hello")
end

irb(main):028:0> str
=> "hello"
[/code]
但是当我们用::来调用以大写字母开头的方法则会被判为常数,引发异常:
[code]
::Foo    # => uninitialized constant Foo::Bar (NameError)
[/code]
避免这样的错误就得这样写:
[code]
obj::Foo()
"ok"
=> nil
[/code]
注意:不支持obj::Foo这样的调用

[b]3。有无空格已经没有差异 [/b]
b = a+2
b = a  +2
是相等的,第二个不会被解释为a(+2)
-------------------------------------
[color=green]
书评:
Ruby trap有点过时了,看的时候必须的结合最新版本的ruby来实践才行,避免造成误导!
[/color]

[[i] 本帖最后由 blackanger 于 2007-8-15 12:35 编辑 [/i]]

blackanger 2007-8-15 10:20

书评第一弹!

g9981 2007-9-17 09:48

thank you

单向量 2007-9-21 18:12

赞一个。

cracky 2007-9-27 09:42

挺好,顶楼主一个

bluebillow 2007-9-29 09:41

应该比较有用个
学习一下

wls212 2007-10-5 18:05

楼主,我会记住你的!

楼主,我会记住你对我的好的!

wadyweiwei 2007-10-9 14:38

没看过看看先!谢谢楼主希望以后能提供更好的资料!

census 2007-11-4 17:10

好东西 ,谢谢了

风逸 2007-11-23 20:58

谢谢楼主。

kingze 2007-12-10 13:34

非常感谢

wood_lu 2008-3-3 04:11

谢谢楼主

悟了自度 2008-4-29 00:28

thank you

thank you

xujin1402008 2008-5-25 17:45

感谢分享

皮皮 2008-6-4 13:14

应该比较有用个:victory: 学习一下

chen09 2008-7-14 23:37

考资格很有用

谢谢。:handshake

giggsling 2008-9-1 23:12

谢谢楼主

谢谢楼主

ygym 2008-9-11 17:59

thank you

estgyui 2008-11-10 10:09

我就需要这类的资料。

ioisamu 2008-11-23 12:57

回复 1# 的帖子

thank you
页: [1]
查看完整版本: Ruby陷阱[CHM格式].中文