Ruby中.length和.length()之间的区别是什么?

Ruby中.length和.length()之间的区别是什么?,ruby,Ruby,我只是想知道.length()是否只是.length的别名,因为它们返回相同的结果: [38]撬(主)>温度=[1,2,3] => [1, 2, 3] [40]撬(主)>温度长度 => 3 [41]撬(主)>温度长度() => 3 没有区别。在Ruby中,在许多情况下可以省略参数周围的括号 temp.length temp.length() 都是一样的。同样的道理也适用于中国 temp.push(4) temp.push 4 没有区别。在Ruby中,在许多情况下可以省略参数周围的括号 te

我只是想知道
.length()
是否只是
.length
的别名,因为它们返回相同的结果:

[38]撬(主)>温度=[1,2,3]
=> [1, 2, 3]
[40]撬(主)>温度长度
=> 3
[41]撬(主)>温度长度()
=> 3

没有区别。在Ruby中,在许多情况下可以省略参数周围的括号

temp.length
temp.length() 
都是一样的。同样的道理也适用于中国

temp.push(4)
temp.push 4

没有区别。在Ruby中,在许多情况下可以省略参数周围的括号

temp.length
temp.length() 
都是一样的。同样的道理也适用于中国

temp.push(4)
temp.push 4

在Ruby中,定义或调用(执行、使用)方法时, 您可以省略括号。

所以这些线的意思完全相同:

temp.length
temp.length()

在Ruby中,定义或调用(执行、使用)方法时, 您可以省略括号。

所以这些线的意思完全相同:

temp.length
temp.length()

只是对这些答案的补充

您还可以省略方法定义上的括号,而不仅仅是方法调用

例如:

def长度
1.
终止
def length()
2.
终止

只是对这些答案的补充

您还可以省略方法定义上的括号,而不仅仅是方法调用

例如:

def长度
1.
终止
def length()
2.
终止

那太好了。这是否意味着它可以在命令行和类结构中运行,或者至少可以说命令行的语法也可以在类结构中运行?@亲爱的,它只是少了一些混乱,这是Ruby的设计美学之一
x.y.z
看起来比
x().y().z()
更干净,而且在Ruby中使很多东西整洁,而在其他语言中却非常难看。值得一提的是,有些情况下,你想使用它们,或者需要使用它们,比如
temp.push 4*5
temp.push(4)*5
这意味着两个完全不同的东西。如果要将参数和块作为一条直线传递,例如
fn(a,b){c}
或者当参数之间的逗号不明确时,例如
[fn(1),fn(2)]
fn(a),fb(b)
。。。但是,如果您不使用任何参数,解析器将永远不需要paren,因此在输入错误的情况下,错误消息更精确:
rnd
=>namererror(未定义的局部变量或方法rnd用于main:Object)与
rnd()
=>NoMethodError(未定义的方法rnd用于main:Object)相比,这很有趣。这是否意味着它可以在命令行和类结构中运行,或者至少可以说命令行的语法也可以在类结构中运行?@亲爱的,它只是少了一些混乱,这是Ruby的设计美学之一
x.y.z
看起来比
x().y().z()
更干净,而且在Ruby中使很多东西整洁,而在其他语言中却非常难看。值得一提的是,有些情况下,你想使用它们,或者需要使用它们,比如
temp.push 4*5
temp.push(4)*5
这意味着两个完全不同的东西。如果要将参数和块作为一条直线传递,例如
fn(a,b){c}
或者当参数之间的逗号不明确时,例如
[fn(1),fn(2)]
fn(a),fb(b)
。。。但是,如果您没有传递任何参数,解析器将永远不需要参数,因此在输入错误的情况下,错误消息更为精确:
rnd
=>namererror(未定义的局部变量或方法rnd用于main:Object)与
rnd()
=>nomethoderor(未定义的方法rnd用于main:Object)