首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fixnum/浮子可以是零吗?

Fixnum/浮子可以是零吗?
EN

Stack Overflow用户
提问于 2014-08-06 20:46:31
回答 4查看 169关注 0票数 0

Fixnum/浮子可以是零吗?在这种情况下,自我甚至可以是零吗?

代码语言:javascript
复制
class Fixnum
  def clamp(min, max)
    if self == nil then nil end
    ...
  end
end
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-08-06 20:50:08

这是不可能的,因为nil有自己的类,NilClass

代码语言:javascript
复制
irb(main):001:0> nil.class
=> NilClass
irb(main):002:0> 456.class
=> Fixnum

因此,变量可以是Fixnum,也可以是NilClass,但不能两者兼而有之。

在类实例方法的上下文中,self总是引用类的类型的实例。

此外,self也不能更改:

代码语言:javascript
复制
irb(main):006:0> class C
irb(main):007:1>   def z
irb(main):008:2>     self = nil
irb(main):009:2>   end
irb(main):014:1> end
SyntaxError: (irb):8: Can't change the value of self
self = nil
      ^
        from D:/dev/Ruby20/bin/irb:12:in `<main>'
票数 4
EN

Stack Overflow用户

发布于 2014-08-06 20:55:30

问问露比:

代码语言:javascript
复制
nil.is_a? Fixnum
# false
nil.is_a? Float
# false
票数 2
EN

Stack Overflow用户

发布于 2014-08-06 20:50:19

不是的。对象要么是Fixnum,要么是NilClass。self始终是当前类的一种类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25169886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档