Ruby中实现把字符串转换为类的2种方法

(编辑:jimmy 日期: 2025/1/9 浏览:2)

最近有个需求,需要根据一个字符串当作一个类来使用,例如:

有一个字符串 “ChinaMag”,根据这个字符串调用 类 ChinaMag下的方法。

解决办法:

1.rails可以使用 constantize方法。

复制代码 代码如下:
pry(main)> 'ChinaMag'.constantize
=> ChinaMag
pry(main)> "Test::Unit".constantize
=> Test::Unit

2.ruby可以使用 Object.const_get(“String”)。

复制代码 代码如下:
pry(main)> Object::const_get('ChinaMag')
=> ChinaMag
 
pry(main)> module Foo
pry(main)*   class Bar 
pry(main)*   end   
pry(main)* end 
=> nil
pry(main)> 'Foo::Bar'.split('::').inject(Object) {|o,c| o.const_get c}
=> Foo::Bar

一句话新闻

高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。