gpt4 book ai didi

ruby - Object.const_set 使用变量

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:09 26 4
gpt4 key购买 nike

我正在尝试使用变量“命名”一个新类。

从 antoher thread 我得到了一些关于使用 och 'const_set' 的初学者,当我尝试这个时它工作正常:

name = "Person"
attributes = [:fname, :age]

klass = Object.const_set name, Struct.new(*attributes)

p = Person.new("John Doe", 42) # => #<struct Person name="John Doe", age=42>

但现在我想以不同的方式使用“名称”变量,比如更改它持有的值等(实际上将是一个常量..?)

我正在从外部检索一个名为 titleString 的字符串的新值。

但是当我尝试将它的值传递给'name'时

name = "#{titleString}"
attributes = [:fname, :age]

klass = Object.const_set name, Struct.new(*attributes)

我以“错误的常量名称”结束 - 错误..

怎么会?

最佳答案

您是否从 gets 等输入中获取 titleString? titleString 末尾可能会挂出一个换行符。

> name="Bar\n"
=> "Bar\n"
> klass = Object.const_set name, Struct.new(*attributes)
NameError: wrong constant name Bar

关于ruby - Object.const_set 使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com