Ruby 作者到底想让我理解什么?

Ruby 作者到底想让我理解什么?,ruby,object,Ruby,Object,第二个例子让人困惑,除非你记得所有东西都是一个对象 Ruby(是的,甚至是字符串文字!它们属于string类。)。因为字符串是文本 创建一个字符串对象,您可以像处理任何其他对象一样对其进行操作。在这种情况下,, 将一个字符串乘以3只需执行您所想的操作:将 绳子 我在一本ruby书中读到了上面的段落。第一行表示第二个示例令人困惑,除非您记住Ruby中的所有内容都是对象。在第二个例子中,我应该记住的是什么,在ruby中,一切都是一个对象?这不只是一个功能,乘以3将打印三次tora吗 我不太明白作者想

第二个例子让人困惑,除非你记得所有东西都是一个对象 Ruby(是的,甚至是字符串文字!它们属于string类。)。因为字符串是文本 创建一个字符串对象,您可以像处理任何其他对象一样对其进行操作。在这种情况下,, 将一个字符串乘以3只需执行您所想的操作:将 绳子

我在一本ruby书中读到了上面的段落。第一行表示第二个示例令人困惑,除非您记住Ruby中的所有内容都是对象。在第二个例子中,我应该记住的是什么,在ruby中,一切都是一个对象?这不只是一个功能,乘以3将打印三次tora吗

我不太明白作者想让我从上面的段落理解什么,“Tora!a”是String类的一个实例。您可以对其调用方法。这在许多语言中是不可能的,例如PHP

(“*”只是方法名)

“Tora!a”是String类的一个实例。您可以对其调用方法。这在许多语言中是不可能的,例如PHP


('* '只是方法名称)

嗯,是的,你可以认为它是一个特征,但是作者可能试图解释的(虽然不是很清楚,至少在这一段中),实际上发生的是:

  • “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中没有乘法运算符。在字符串和数字对象上都定义了一个方法
    “*”
    (解析器以相同的方式处理“*”)(但两者都不打印任何内容)。他们做了非常不同的事情,但结果是你所期望的

    嗯,也许这不是作者想让你理解的,这很重要