嗨我想知道是否有人可以向我解釋爲什麼寫在下面的代碼中的地圖函數是寫在它的書面方式。具體爲什麼我們需要做的在中間步驟的局部變量
results = letters.map do |letter| encrypted_letter = encrypt_letter(letter)
,而不是僅僅做
results = letters.map do |letter| encrypt_letter(letter)
class Encryptor
def cipher
{"a" => "n", "b" => "o", 'c' => 'p', 'd' => 'q',
'e' => 'r', 'f' => 's', 'g' => 't', 'h' => 'u',
'i' => 'v', 'j' => 'w', 'k' => 'x', 'l' => 'y',
'm' => 'z', 'n' => 'a', 'o' => 'b', 'p' => 'c',
'q' => 'd', 'r' => 'e', 's' => 'f', 't' => 'g',
'u' => 'h', 'v' => 'i', 'w' => 'j', 'x' => 'k',
'y' => 'l', 'z' => 'm'}
end
def encrypt_letter(letter)
lowercase_letter = letter.downcase
cipher[lowercase_letter]
end
def encrypt(string)
letters = string.split("")
results = letters.map do |letter|
encrypted_letter = encrypt_letter(letter)
end
results.join
end
def decrypt_letter(letter)
lowercase_letter = letter.downcase
cipher.key(lowercase_letter)
end
def decrypt(string)
letters = string.split("")
results = letters.map do |letter|
decrypted_letter = decrypt_letter(letter)
end
results.join
end
end
好,謝謝。我試圖弄清楚它的相當一段時間 – JaTo
「有時程序員覺得他們的結果有一個明確的變量目的地,更舒服。」?我會更簡單地說:寫它的人不知道「地圖」是如何工作的,而且寫得過於冗長。中間變量有它們的位置,但不應該指定爲只能使用一次。 @ Tinman ...... –
......我沒有任何建議,這是很好的做法。我只是在做一個觀察,並且有點舌尖。我不會完全假定程序員腦子裏發生了什麼。 – lurker