【发布时间】:2025-12-07 09:15:02
【问题描述】:
Ruby 的 Array 类具有内置方法 to_s 可以将数组转换为字符串。此方法也适用于多维数组。这个方法是如何实现的?
我想知道它,所以我可以重新实现一个方法my_to_s(ary),它可以接收多维并将其转换为字符串。但不是像这样返回对象的字符串表示
[[[1,2,3, Person.new('Mary')]],[4,5,6,7], Person.new('Paul'),2,3,8].to_s
# [[[1, 2, 3, #<Person:0x283fec0 @name='Mary']], [4, 5, 6, 7], #<Person:0x283fe30 @name='Paul'>, 2, 3, 8]
my_to_s(ary) 应该在这些对象上调用 to_s 方法,以便它返回
my_to_s([[[1,2,3, Person.new('Mary')]],[4,5,6,7], Person.new('Paul'),2,3,8])
# [[[1, 2, 3, Student Mary]], [4, 5, 6, 7], Student Paul>, 2, 3, 8]
【问题讨论】:
-
我其实相信你只是想覆盖
Person#to_s来返回"Student #{self.name}"字符串。
标签: ruby algorithm recursion multidimensional-array tostring