gpt4 book ai didi

ruby - 如何获取常量的名称

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:32 25 4
gpt4 key购买 nike

module Colors
Red = 0
Blue = 1
Green = 2
end

当我有对模块 Colors 的引用时,我可以通过 Colors.name 获取该模块的名称 "Colors"

当我引用常量 Colors::Red 时,是否可以获取常量 "Colors::Red" 的字符串表示形式?

最佳答案

是的,前提是只有一个常量的值等于给定引用的值。

def ref_to_str(value)
k = Colors.constants.find { |k| Colors.const_get(k) == value }
k.nil? ? nil : "Colors::#{k}"
end

ref_to_str(0)
#=> "Colors::Red"
ref_to_str(1)
#=> "Colors::Blue"
ref_to_str(2)
#=> "Colors::Green"
ref_to_str(3)
#=> nil

关于ruby - 如何获取常量的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37957449/

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