Ruby 作者到底想让我理解什么?
第二个例子让人困惑,除非你记得所有东西都是一个对象 Ruby(是的,甚至是字符串文字!它们属于string类。)。因为字符串是文本 创建一个字符串对象,您可以像处理任何其他对象一样对其进行操作。在这种情况下,, 将一个字符串乘以3只需执行您所想的操作:将 绳子 我在一本ruby书中读到了上面的段落。第一行表示第二个示例令人困惑,除非您记住Ruby中的所有内容都是对象。在第二个例子中,我应该记住的是什么,在ruby中,一切都是一个对象?这不只是一个功能,乘以3将打印三次tora吗 我不太明白作者想让我从上面的段落理解什么,“Tora!a”是String类的一个实例。您可以对其调用方法。这在许多语言中是不可能的,例如PHP (“*”只是方法名)“Tora!a”是String类的一个实例。您可以对其调用方法。这在许多语言中是不可能的,例如PHPRuby 作者到底想让我理解什么?,ruby,object,Ruby,Object,第二个例子让人困惑,除非你记得所有东西都是一个对象 Ruby(是的,甚至是字符串文字!它们属于string类。)。因为字符串是文本 创建一个字符串对象,您可以像处理任何其他对象一样对其进行操作。在这种情况下,, 将一个字符串乘以3只需执行您所想的操作:将 绳子 我在一本ruby书中读到了上面的段落。第一行表示第二个示例令人困惑,除非您记住Ruby中的所有内容都是对象。在第二个例子中,我应该记住的是什么,在ruby中,一切都是一个对象?这不只是一个功能,乘以3将打印三次tora吗 我不太明白作者想
('* '只是方法名称)
嗯,是的,你可以认为它是一个特征,但是作者可能试图解释的(虽然不是很清楚,至少在这一段中),实际上发生的是:“Tora!”
是类字符串的对象(“一切都是对象”)
“您可以像调用任何其他对象一样对其调用任何方法”。
在本例中,您正在调用方法
*
(乘法)“Tora!”
字符串
以如下方式被调用:
"Inches/yard: #{12*3}"
"#{"Tora! "*3}"
看到了吗?操作符*
只是字符串对象上的一个方法
在许多较简单的语言中,运算符实际上是“烘焙”到语言本身中的,而不是作为方法调用对目标进行操作
如果你不习惯其他语言,你可能不会觉得这一切都很了不起,因为在Ruby中,这只是一件普通的日常事情。您不需要键入1.+(2)
,Ruby会在您键入1+2
时自动为您执行此操作
<>这是作者想让你记住的——所有的运算符和操作都只是对其他对象的方法调用。 ,是的,你可以认为它是一个特征,但是作者可能试图解释的(虽然不是很清楚,至少在这一段中),实际上发生的是:
"Tora ! ".*(3)
=> "Tora ! Tora ! Tora ! "
“Tora!”
是类字符串的对象(“一切都是对象”)
“你可以像对待任何其他物体一样对待它”,意思是:
“您可以像调用任何其他对象一样对其调用任何方法”。
在本例中,您正在调用方法*
(乘法)
所以实际发生的是,“Tora!”
字符串
以如下方式被调用:
"Inches/yard: #{12*3}"
"#{"Tora! "*3}"
看到了吗?操作符*
只是字符串对象上的一个方法
在许多较简单的语言中,运算符实际上是“烘焙”到语言本身中的,而不是作为方法调用对目标进行操作
如果你不习惯其他语言,你可能不会觉得这一切都很了不起,因为在Ruby中,这只是一件普通的日常事情。您不需要键入1.+(2)
,Ruby会在您键入1+2
时自动为您执行此操作
这就是作者希望你们记住的——所有的操作符和操作本质上都是对其他对象的方法调用
"Tora ! ".*(3)
=> "Tora ! Tora ! Tora ! "
“这难道不只是一个功能,乘以3会打印三次tora吗?”
这是不准确的。Ruby中没有乘法运算符。在字符串和数字对象上都定义了一个方法
“*”
(解析器以相同的方式处理“*”)(但两者都不打印任何内容)。他们做了非常不同的事情,但结果是你所期望的
嗯,也许这不是作者想让你理解的,这很重要
“这难道不只是一个功能,乘以3会打印三次tora吗?”
这是不准确的。Ruby中没有乘法运算符。在字符串和数字对象上都定义了一个方法
“*”
(解析器以相同的方式处理“*”)(但两者都不打印任何内容)。他们做了非常不同的事情,但结果是你所期望的
嗯,也许这不是作者想让你理解的,这很重要