2016-06-28 3 views
1

을 루비 기능 .times이 왜 .times 어려운되고 있습니다 - 루비

str.chars.map{|letter| num.times{letter.next}} 

단지 그러나 많은 문자의 번호 ( num)를 생산하고 어려운되는 대신 단어에 있던 왜 누군가가 나에게 설명해 주시겠습니까 각 문자를 알파벳 ( .next) 아래로 여러 번 움직이는 것. 나는 그것이 단순한 것처럼 보인다. 그러나 내가 이해하는 것에서 이것은 .times를 사용하는 방법이다. 그러나 이것과 같은 것이 many.times ....이었다. 그것은 농담이었다.

답변

1

num.timesnum의 값을 반환합니다. 아래 같은 것을 사용해야합니다

str.chars.map{|letter| num.times{ letter = letter.next }; letter } 
+2

'('letter'.ord + num) .chr' – mudasobwa

0

그래 내가 할 줄 뭔가

def caesar_up(string, n) 
    string.chars.map { |char| (char.ord + n).chr }.join 
end 

처럼 그런 "OQO"

+0

mudasobwa 님의 댓글 – Luke

0
> 'abc'.chars.map{|c| c.tap { 3.times{c.next!} } }.join 
=> "def" 

혹은

3.times.inject(letter){|a,_| a.next} 
를 얻을 수 caesar_up("MOM", 2)처럼 사용

하지만 어느 쪽도 읽을 수는 없습니다.