Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你怎么能在Ruby中实现'Integer(';1';)'?_Ruby - Fatal编程技术网

你怎么能在Ruby中实现'Integer(';1';)'?

你怎么能在Ruby中实现'Integer(';1';)'?,ruby,Ruby,标准库如何允许您使用Integer('1')#=>1将字符串强制为整数?有没有一种语言特性允许我们在类中创建这种转换语法?我们可以这样做- '1'.to_i => 1 这只是一种伪装的方法。不知道你在问什么。它是内核类中名为整数的方法;它被命名为类是为了方便。它将其参数转换为整数。是否询问实现细节?我不确定你的问题的目的是什么。@iamnotmaynard:我猜OP是在问,因为它被设计成在Integer类上看起来像魔术。发生了什么并不总是很清楚,尤其是使用大写的名称违背了通常教授的Ru

标准库如何允许您使用
Integer('1')#=>1将
字符串
强制为
整数
?有没有一种语言特性允许我们在类中创建这种转换语法?

我们可以这样做-

 '1'.to_i => 1

这只是一种伪装的方法。

不知道你在问什么。它是
内核
类中名为
整数
的方法;它被命名为类是为了方便。它将其参数转换为整数。是否询问实现细节?我不确定你的问题的目的是什么。@iamnotmaynard:我猜OP是在问,因为它被设计成在
Integer
类上看起来像魔术。发生了什么并不总是很清楚,尤其是使用大写的名称违背了通常教授的Ruby标准。@NeilSlater是的,我现在明白了。只是不清楚OP在问什么。这是大多数代码中使用的约定。许多对象定义了方便方法。