首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查警告:找不到字段的声明

检查警告:找不到字段的声明
EN

Stack Overflow用户
提问于 2016-06-10 00:54:10
回答 2查看 2.3K关注 0票数 5

努布问题。我在一个包含这个类的文件上运行RubyMine的代码检查。

代码语言:javascript
复制
class Square
  attr_accessor :width

  def area
    @width * @width
  end
end

我很惊讶地在@width * @width上收到了两个警告

Cannot find declaration for field '@width'

样式指南的attr部分对我没有帮助。为什么这是警告?

-编辑

红宝石-医生这么说是关于attr-accessor

定义此模块的命名属性,其中名称为符号.id2name,创建实例变量(@name)和相应的访问方法来读取它。还创建了一个名为name=的方法来设置属性。字符串参数被转换为符号。

对我来说,“定义”意味着它有一个“声明”。警告信息没有意义。“警告:字段使用前不可初始化”更准确。

我认为这是一个RubyMine问题(如果是一个问题的话)。不使用标准链接器的RubyMine显然使用了自己的代码检查协议。

EN

回答 2

Stack Overflow用户

发布于 2016-06-10 17:35:55

RubyMine在这种情况下显示此警告是一个已知问题

票数 6
EN

Stack Overflow用户

发布于 2016-06-10 01:00:35

@width似乎没有被初始化。

代码语言:javascript
复制
class Square
  attr_accessor :width

  def initialize(width)
    @width = width
  end

  def area
    @width * @width
  end
end

x = Square.new(4)
#=> #<Square:0x00000002371ef8 @width=4>
x.area
#=> 16

没有这种情况,调用Square.new.area时就会出现一个错误(因为已经定义了正方形,但没有设置宽度)。

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

https://stackoverflow.com/questions/37738412

复制
相关文章

相似问题

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