2
Ruby 1.8 용으로 작성된 RubyQuiz 용 코드를보고 있는데, 1.9.2에서 실행하면 오류가 발생합니다. 이 방법Fixnum에 문자열 강제 적용
def encrypt(s)
return process(s) {|c, key| 64 + mod(c + key - 128)}
end
는 나에게 다음과 같은 오류
in `+': String can't be coerced into Fixnum (TypeError)
을 제공 여기에 내 코드입니다 :
def mod(c)
return c - 26 if c > 26
return c + 26 if c < 1
return c
end
def process(s, &combiner)
s = sanitize(s)
out = ""
s.each_byte { |c|
if c >= 'A'.ord and c <= 'Z'.ord
key = @keystream.get
res = combiner.call(c, key[0])
out << res.chr
else
out << c.chr
end
}
return out
end
'mod' 함수를 살펴보면 새로운'modulo' 함수인지 커스텀인지 확실하지 않습니다. – Candide
@Candide는 mod 함수를 게시했습니다 – BrainLikeADullPencil
또한 프로세스 함수 표시 –