如何使用`each`在多个字符串中添加一个方法

How to use `each` to add a method in multiple strings

我有一些代码,我想使用 each 方法来减小它的大小,但我不知道如何使用它。这是我当前的代码。

e = "1000101"
k = "1101011"
a = "1100001"
n = "1101110"
s = "1110011"
h = "1101000"
print e.to_i(2).chr
print k.to_i(2).chr
print a.to_i(2).chr
print n.to_i(2).chr
print s.to_i(2).chr
print h.to_i(2).chr

有这样的吗?

[e, k, a, n, s, h].each { |s| print s.to_i(2).chr }
 => Ekansh

除了each,你可以通过reduce:

建立一个新的字符串
[e, k, a, n, s, h].reduce('') { |memo, binary| memo << binary.to_i(2) }
#=> "Ekansh"

该块将 binary.to_i(2) 的结果附加到最初为 ''(空字符串)的 memo 字符串。

请注意,在这种情况下我们不需要调用 chr,因为 String#<< 将整数输入解释为代码点。