ruby中字符串转换为类

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

有一个字符串 “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

  

时间: 2024-07-30 15:12:02

ruby中字符串转换为类的相关文章

Ruby中字符串与正则表达式的问题

Ruby的正则表达式为Regexp类的对象 主要的元语言字符 記号 意味 例 説明 ^ 行頭 /^abc/ abcで始まる行 $ 行末 /abc$/ abcで終わる行 . 任意の1文字 /a.b/ aとbの間に1文字 [...] []内のいずれか1文字 /[A-Za-z]/ 英字 [^...] []内に含まれない1文字 /[^0-9]/ 数字以外 * 0回以上の繰り返し /a.*/ aまたはaで始まる + 1回以上の繰り返し /a+/ 1回以上のaの繰り返し ? 0回または1回 /aa?/ aま

js中字符串转换为数值的两种方法的区别

在js中字符串转换为数值的方法有三种:转换函数,强制类型转换,隐式转换 1.转换函数 parseInt()   //将字符串转换为整型 parseFloat()  //将字符串转换为浮点型 转换函数在进行类型转换时是可以传入参数的,默认转换为10进制,转换成功后返回的是整数类型的数值. 例:1. parseInt('AB3', 16) //返回结果:2739,表示将字符串转换为16进制的数值 2.parseInt('13', 10) //返回结果:13,表示将字符串转换为10进制的数值 3.pa

js中字符串转换为日期和比较大小

本文转载于:http://yun342173024.iteye.com/blog/1873756在做前端校验的时候,要做日期比较的校验,在js中把字符串转化为日期,一时之间还真不知道在js中怎么把一个字符串格式的日期转化为Date,查看了一些资料,在此分享下. 下面以调用js中Date(year,month,day)来生成一个日期对象.  1.把字符串格式转换为日期的函数,函数接受两个参数,dateStr字符串日期格式,  separator日期格式分隔符,默认是-.,这里没有对字符串的日期格式

Swift中实现ruby中字符串乘法倍增的功能

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在ruby中对于字符串类型我们可以用乘法生成一个指定数量重复的字符串: irb(main):002:0> money = "9" => "9" irb(main):003:0> money * 99 => "99999999999999999999999999999999999999999

C#中字符串String类及方法的使用(一)

一.实例化String对象 1.最常用的方法是直接将字符串分配到String变量中. 注意1:转义字符 \ ,字符串内含有引号"".反斜杠\或换行等都需要使用“\”输出. 注意2:在字符串前面使用@符号,指明转义序列不被处理. 1 string string1 = "This is a string created by assignment."; 2 Console.WriteLine(string1); 3 string string2a = "The

ruby中的方法查找

ruby中的方法调用都是 对象.方法 的形式,那么对象如何找到这个方法呢? 首先必须了解祖先链的概念,祖先链就是从一个类开始,到它的父类,再到父类的父类...一直到最终的起点(ruby中是BasicObject类).这期间经历过的路径就是祖先链. 1混含模块和继承的方法查找 对于一个实例对象,先找它属于的类中是否有对应的实例方法,然后看这个类中是否有模块,如果有,查找模块中是否有对应的方法,如果没有,则查找父类.先看父类的实例方法,再看父类中是否有模块,再看父类的父类..一直到最后,BasicO

bjective-C 中核心处理字符串的类是 NSString 与 NSMutableString

Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值.而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度. 1.创建经典的NSString字符串 NSString 与 char* 最大的区别就是 NSString是一个objective对象,而char* 是一个字节数组.@+ " 字符串 " 

VC中,如何将十六进制字符串转换为十进制数?

原文链接:http://blog.csdn.net/bennyfun79/article/details/6934843 在程序中,我们有时需要将一个十六进制字符串转换为十进制数字.比如: 1 char *ptr="0x11"; 2 int n=0; 3 //我们想让n等于0x11,即17 通常我们在C中,想将一个字符串转换为一整形数字,通常会使用下面的方法: view plaincopy to clipboardprint? 1 char *ptr="123";

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//