안녕하세요, 아래 코드에서 작성된지도 기능이 왜 쓰여지는지 설명해 줄 수 있는지 궁금합니다. 할 이유를 구체적으로 우리는중급 단계의 지역 변수
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
"때때로 프로그래머는 결과에 대해 명시적인 변수 대상을 갖는 것이 더 편하다고 느낍니다." 나는 그것을 더 간단하게 말하고 싶다 : 그것을 쓴 사람은'map'이 어떻게 작동하고 너무 자세하게 쓰는지 모른다. 중간 변수는 그 자리가 있지만 한 번만 사용되도록 지정하면 안됩니다. –
@ The Tin Man ... 아무 곳에서도 좋은 연습이라고 제안하지 못했습니다. 나는 단지 관찰을하고 있었고 어느 정도는 혀를보고 있었다. 필자는 프로그래머의 머리 속에서 어떤 일이 벌어지고 있는지 절대 생각하지 않을 것이다. – lurker