Ruby 프로그램을 작성 중이고 사용자에게 질문하고 싶습니다...
어떻게 할 수 있나요?
음, Ruby gets
를 사용할 수 있습니다. 사용자 입력을 읽는 방법입니다.
gets
을 호출할 수 있습니다. .
그런 다음 프로그램은 키보드로 무언가를 입력하고 Enter 키를 누르기를 기다리기 시작합니다.
결과는?
문자열을 반환합니다.
이 문자열에는 사용자(또는 사용자)가 입력한 내용이 있으므로 이 문자열을 변수에 할당하면 사용할 수 있습니다.
일반적인 예는 인사말 프로그램입니다.
이렇게 생겼어요 :
name = gets.chomp puts "Hello #{name}, nice to meet you!"<블록 인용>
#{name}
이것을 문자열 보간이라고 합니다.
이것을 시도하고 어떻게 작동하는지 직접 확인하십시오.
- 먼저 이 코드를 "greeting.rb" 파일에 저장합니다.
- 그런 다음 "ruby Greeting.rb"(터미널 프로그램에서)와 함께 사용
이름을 입력하면 프로그램이 여러분을 맞이합니다!
멋지네요.
지금 :
이 chomp
는 무엇인가요? 비즈니스에 관한 모든 것?
gets
의 결과를 변경하는 Ruby 메소드입니다. 매우 구체적인 방식으로.
제거해 보세요.
점 포함(.
) 앞에 있으므로 name = gets
가 됩니다. , name = gets.chomp
대신 .
코드를 저장하고 다시 실행하면...
인사말이 이제 전체 인사말이 한 줄에 있는 대신 두 줄로 나누어진 것을 볼 수 있습니다.
무슨 일이야?
자세히 알아보기 위해 파헤쳐 보겠습니다!
줄 바꿈 및 특수 문자 이해
Ruby는 gets
동안 프로그램에 입력하는 모든 것을 읽습니다. 메서드가 활성화되어 있습니다.
인사말 프로그램 , 여기에는 귀하의 이름이 포함됩니다.
그리고 인사말을 두 줄로 나누는 특별한 "개행" 문자!
새 줄 문자 만나기 :
\n
이러한 종류의 특수 문자는 일반적으로 보이지 않으며 새 줄, 공백, 색상 등의 형태로만 나타납니다.
그것들을 보고 싶다면 $10,000의 가격에 마법의 손전등이 필요합니다.
농담이에요!
p
만 있으면 됩니다. 메소드 또는 inspect
방법.
사용 예 :
p name # "Jesus\n"
있습니다!
"새 줄" 문자(\n
).
이것은 우리의 원래 질문으로 돌아갑니다...
chomp
란? 모든 것에 대해?
chomp
의 목적 문자열 끝에 있는 개행 문자를 제거하는 것입니다.
보시다시피 매우 유용합니다!
또 다른 예
이 줄 바꿈 문자 또는 기타 특수 문자가 있으면 인쇄할 때 문자열이 어떻게 보이는지보다 더 많은 영향을 미칩니다.
또한 if 문에도 영향을 줄 수 있습니다!
예 :
name = gets if name == "David" puts "Hello David, we were expecting you!" end
이 코드에서 chomp
를 사용하지 않으면 gets
사용 , 두 문자열은 개행 문자(\n
), 그래서 이것은 false
로 평가됩니다. .
그런데...
이는 gets
외부에서 가져온 문자열에도 적용됩니다. , 데이터베이스, 파일 또는 기타 소스를 읽음으로써 얻은 데이터와 같습니다.
이 특수 문자를 주시하세요!
찹 대 찹 대 스트립
사용자 입력을 정리하는 데 도움이 될 수 있는 또 다른 두 가지 방법은 chop
입니다. &strip
.
strip
사용 공백을 제거할 수 있습니다.
예 :
" John Smith ".strip
chop
사용 항상 마지막 문자를 제거합니다.
첫 번째 문자 제거
또 다른 작업은 처음부터 문자를 제거하는 것입니다.
이렇게 하면 됩니다 :
str = "Mr. John" str[0..3] = "" str # "John"
이렇게 하면 처음 4개의 문자가 제거됩니다.
두 개의 Get 메소드? 음모가 두꺼워집니다!
특별한 경우가 있습니다...
$stdin.gets
를 사용해야 하는 위치 gets
대신 .
이러한 오류가 발생하는 경우 :
`gets': No such file or directory @ rb_sysopen
왜?
gets
의 두 가지 버전이 있기 때문에 방법.
- 기본 버전은 파일 이름 읽기를 시도합니다.
- 대체 버전(
$stdin.gets
) 항상 사용자 입력에서 읽습니다.
이제 gets
를 사용하는 동안 이와 같은 오류가 표시되면 , $stdin.gets
로 변경해 보십시오. .
요약
get &chomp 메소드, 그 기능, 작동 방식 및 유용한 이유에 대해 배웠습니다!
이 Ruby 튜토리얼을 통해 계속 학습하세요.
읽어 주셔서 감사합니다! 🙂