【发布时间】:2021-11-26 04:30:39
【问题描述】:
关于stackoverflow的第一个问题:)
我正在学习 Codecademy 的 Ruby 课程,但遇到了一些问题。
fruits = ["orange", "apple", "banana", "pear", "grapes"]
fruits.sort! {|first, second| second <=> first}
print fruits
我不知道如何表达这个问题。在 Codecademy 上,任务是设置要在控制台上反向显示的数组。经过一番研究,我能够弄清楚。我了解它的工作原理以及将其放入代码中的顺序而不是为什么。我知道“”比较两个对象,但是当我们不这样声明时,数组中的项目如何成为对象?
其次,当我们可以做到fruits.sort.reverse时,这样写这段代码的目的是什么?
【问题讨论】:
-
“当我们不声明数组中的项目时,它们如何变成对象” – 与其他语言不同,Ruby 没有原始类型,而你没有不必声明类型。像
"orange"甚至5这样的文字已经是一个成熟的对象。这就是为什么您可以编写5.times { ... }并使用times作为Integer的实例方法,或者"orange" <=> "apple"调用String#<=>。 (操作符只是方法调用的语法糖)