Ruby (鲁比)为什么这样做?

Ruby (鲁比)为什么这样做?,ruby,Ruby,我最近开始学习ruby,并正在构建一个简单的“加密”方法。我得到了想要的结果,但我不知道为什么 string = "This is a test" offset = 5 def encode(string, offset) coded = "" string.scan(/./) do |char| numbers = char.ord if numbers == 32 numbers = numbers e

我最近开始学习ruby,并正在构建一个简单的“加密”方法。我得到了想要的结果,但我不知道为什么

string = "This is a test"
offset = 5

def encode(string, offset)
    coded = ""
    string.scan(/./) do |char|
        numbers = char.ord
        if numbers == 32
            numbers = numbers
        else
            numbers = numbers + offset
        end
        coded << numbers
    end
    return coded
end

puts encode(string, offset)
string=“这是一个测试”
偏移量=5
def编码(字符串、偏移量)
coded=“”
string.scan(/。/)do | char|
数字=char.ord
如果数字==32
数字=数字
其他的
数字=数字+偏移量
结束
编码

Append---将给定对象连接到str。如果对象是整数,则将其视为码点,并在连接之前转换为字符。Concat可以接受多个参数。所有参数都按顺序连接在一起


原始字符串中的字符被转换为序数整数,加上偏移量,然后输入到
String#学习字符串编码的时间,所花费的时间是值得的。在调试器中逐步完成,或者每一步都打印
数字
编码
的值。你会看到发生了什么。然后,只需查找您不了解的任何方法。谢谢您的回答!