一个人如何编写Ruby
修改方法?
我要完成以下任务:
def fulljoin(ruby_array)
r = ''
ruby_array.each {|item| r += "'#{ item }', "}
r.chop!.chop!
end
a = ['Alex', 'Bert', 'Charlie']
a = fulljoin(a) # => 'Alex', 'Bert', 'Charlie'
但是我想在适当的位置修改数组:
a.fulljoin!
完成此操作的语法是什么?
答案 0 :(得分:1)
最初a
是一个数组。如果您可以编写具有理想结果的方法a.fulljoin!
,则a
将成为 String ,但是在Ruby中是不可能的。
但是a.fulljoin!
可以将a
转换为具有单个成员a[0]
的 Array -
您需要的字符串。这将尽可能接近您的目标:
class Array
def fulljoin!
r = "'#{self.join("', '")}'"
self.clear
self[0] = r
end
end
a = ["Alex", "Bert", "Charlie"]
a.fulljoin!
p a
=> ["'Alex', 'Bert', 'Charlie'"]
P.S .:如@engineersmnky所建议,方法fulljoin!
可以简化为:
class Array
def fulljoin!
self.replace(["'#{self.join("', '")}'"])
end
end
答案 1 :(得分:-2)
a.join(' ')
"Alex Bert Charlie"