repeat(string, number)
문자열을 여러 번 반복하는 선택적 인수가 있는 간단한 함수를 만들고 있습니다. 포럼을 잘 살펴보고 잘 활용하려고 노력했습니다. 이전에 답변을 받았으면 용서 해주세요. 반복 횟수로 함수를 호출하면 *arg
정수 배열이 생성되고 .map (& : to.i) 또는 단순히 array.to_i를 사용하여 정수로 변환 할 수 없습니다. 여기에 도움을 주시면 감사하겠습니다 :)
이 코드는 평가하려고 할 때 실패합니다. number < 3
def echo(string)
string
end
def shout(string)
echo(string).upcase
end
def repeat(string, *number)
number = number.map { |i| i.to_i }
outputStr = ''
if number < 3
echo(string) + " " + echo(string)
#puts number.inspect.length
else
#count = number
while number > 0
number -= 1
outputStr += echo(string) + " "
end
outputStr[0, outputStr.length - 1]
#
# number.times do {|i| outputStr += echo(string) + " " + echo(string)}
# end
# outputStr
end
end
repeat('hi', 3)
이 코드는 평가하려고 할 때 실패합니다.
number < 3
코드를 실행할 때 다음 오류가 발생합니다.
echo_repeat.rb:13:in `repeat': undefined method `<' for [3]:Array (NoMethodError)
Did you mean? <<
from echo_repeat.rb:31:in `<main>'
배열이 3보다 작은 지 물어 보려고하는데 Ruby가 처리 할 줄 모릅니다. 다음과 같은 경우에 대한 배열을 평가하는 시도 할 수 있었다 one?
, any?
또는 all?
이하 3보다; 예 :
number.one? { |n| n < 3 }
number.any? { |n| n < 3 }
number.all? { |n| n < 3 }
그러나 당신은
문자열을 여러 번 반복하기 위해 선택적 인수가있는 간단한 repeat (string, number) 함수를 만들고 있습니다.
그리고 repeat
함수는 number
매개 변수 로 인수 배열을받습니다 .
def repeat(string, *number)
선택적 인수를 선언하려면 매개 변수가 지정되지 않은 경우에 설정해야하기 때문에 이는 의도적 인 것입니까? 예 :
def repeat(string, number = 1)
이것은 no number
가 주어 졌을 때 문자열을 한 번만 반복합니다 . 예 :
repeat('hi')
# => "hi"
repeat('hi', 3)
# => "hi hi hi"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다