나는 방법은 내가 배열에 해당 문자열을 변환 할 필요가 제대로 작동하려면 배열 또는 문자열루비 문자열 변수? (배열)
을 얻을 것 중 하나 방법이있다. 때때로 문자열을 얻을 것이므로 변수가 배열인지 검사하고 배열로 변환하지 않았 으면합니다. 그래서 나는 다음과 같이했다 :
unless variablename.is_a?(Array)
variablename = variablename.lines.to_a
end
이 두 번째 라인은 실패하고 나는 '라인'을 배열 객체에 사용할 수 없다는 루비 오류가 발생한다.
나는 또한 .kind_of를 시도 했습니까? 같은 결과가 있습니다
나는 내 대답을 얻었지만, 정확히 내가 무엇을 묻고 있는지 명확히하고 싶었습니다. variablename이 배열인지 테스트하려고합니다. 여기서 variableName가 배열 이유로, 여전히 실행 번째 행보다 다음 오류 실패 #Array위한 정의 방법 '라인'0x000000021382b8 (NoMethodError)
당신은 그것의 내용과 형식을 보장하기 위해'variablename'를 검사 할 수 있습니다, 던져진 실제 예외를 제공합니까? –
'variablename'과 (과) 비슷한 문자열이 아닙니다. 그러나'string' 대신에'string.lines'를 여러분의 메소드에 넘겨주고 검사를 피하십시오. – Stefan
왜 확인 하시겠습니까? 'Array # to_a'는 스스로를 반환하기 때문에 검사 할 필요가 없습니다. –