一个数组如:array = ["1","11","111"] ,现在我需要将这些字符串以前面添 0 的方式补成长度为 4 的字符串。
kali 2020.3
ruby 2.7.1
array.map! do |element|
(4-(element.length)).times {element = "0" + element}
end
这个时候,array 数组的值是这个表达式的返回值,返回的是需要补充的次数。
array.map! do |element|
(4-(element.length)).times {element = "0" + element}
element
end
用这种方法就能够满足我的需求
此时我思考,如果是返回值的话,那么我用 return 显式返回更方便我后面理解这块代码为何会有最后一行。
array.map! do |element|
(4-(element.length)).times {element = "0" + element}
return element
end
但是当我显式使用 return 时,数组只有且仅有第一个元素的补全值,这是为什么?
PS 需求是在数字的基础上补全 4 位,不够按 0 添加,我目前是使用字符串来操作。如果有更好的方法,或者是更加 Rubyish 的方法,欢迎一起讨论。