私は最近、ルビーの学習を始め、簡単な暗号化方法を構築しています。私は望みの結果を得ていますが、私はなぜそれがわかりません。(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)
私は希望エンコード出力取得しています: "YmnxのNX Fがyjxy" を、私は理由を知りません。私は文字を文字に戻すことを決して指定していないので、数字の文字列を期待していました。誰かが何が起きているのか説明できますか?
文字列エンコーディングを学習する時間は、費やされる時間に十分に価値があります。 – zaph
デバッガでステップ実行するか、ステップごとに 'numbers'と' coded'の値を表示します。あなたは何が起こっているのを見るでしょう。それはあなたが理解していない方法を調べることだけです。 –