Ruby-使用某些函数进行常量初始化会产生NoMethodError

Koikos

让我们考虑以下代码:

class Try
 CONST = xxx("42")

 private_class_method def self.xxx(str)
   str.to_i
 end
end

puts Try::CONST

它产生一个错误: undefined method `xxx' for Try:Class (NoMethodError)

看来我不能使用类私有方法来初始化常量。该示例实际上是在做nothig,但这是我尝试从文件中将数据读取到类常量中时遇到的错误的再现。

是因为ruby在了解所有方法之前尝试初始化一个常量,还是我做错了什么?

Sebastian Palma的图片

并不是的。您不能做的就是将尚未定义的内容的值分配给其他内容,以保留其值。

它与方法可见性无关,因为这可行:

class Try
  private_class_method def self.xxx(str)
    str.to_i
  end
  CONST = xxx("42")
end

p Try::CONST
# 42

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NoMethodError Ruby在类上初始化

来自分类Dev

Ruby NameError,未初始化的常量,使用Prawn

来自分类Dev

使用常量值初始化 Ruby 哈希

来自分类Dev

未初始化的常量Ruby

来自分类Dev

未初始化的常量Ruby

来自分类Dev

Ruby-未初始化的常量

来自分类Dev

Ruby 中的未初始化常量

来自分类Dev

Ruby NameError:未初始化的常量

来自分类Dev

Ruby错误-未初始化的常量OpenStruct(NameError)

来自分类Dev

Ruby入门指南:未初始化的常量PostsController :: Posts

来自分类Dev

Ruby类中的未初始化常量错误

来自分类Dev

Ruby on Rails“未初始化的常量”错误

来自分类Dev

未初始化的常量ActionView :: CompiledTemplates :: FB Ruby on Rails

来自分类Dev

Ruby:未初始化的常量ATMSystem :: BankComputer(NameError)

来自分类Dev

Ruby on Rails“未初始化的常量”错误

来自分类Dev

Ruby Require不起作用/未初始化的常量

来自分类Dev

Ruby on Rails 5未初始化的常量ApplicationRecord(NameError)

来自分类Dev

Ruby on Rails:未初始化的常量 UserController::ReportUserMailer

来自分类Dev

使用ruby2.1.2的未初始化常量Yaml(NameError)

来自分类Dev

在lib文件夹中使用Ruby Object时出现未初始化的常量错误

来自分类Dev

尝试使用ruby gem- NameError时出错(未初始化的常量RightScraper :: Scraper)

来自分类Dev

Ruby数组初始化

来自分类Dev

Ruby:条件初始化

来自分类Dev

Ruby类初始化

来自分类Dev

Ruby:结构与初始化

来自分类Dev

Ruby类初始化

来自分类Dev

NameError:未初始化的常量Song ...正在编程Ruby

来自分类Dev

Ruby on Rails-NameError:/ admin / users中未初始化的常量UsersController

来自分类Dev

Ruby:尝试“ Update_all”但获取“ NameError:未初始化的常量”

Related 相关文章

热门标签

归档