puts 메소드, print 메소드, p 메소드의 차이
2066 단어 루비
출력 후 개행
메소드 자체의 반환값
개행 문자를 포함한 경우
배열을 출력하는 경우
호출하는 메소드
puts
개행을 더해 출력한다.
nil
줄 바꿈
배열의 []를 포함하지 않고 각 요소마다 개행
to_s
인쇄
개행을 추가하지 않는다.
nil
줄 바꿈
배열의 []를 포함한 개행 없음
to_s
p
개행을 더해 출력한다.
다만 문자열을 출력하면 그 문자열이 더블 쿼트로 둘러싸인다.
인수의 오브젝트 그 자체가 개행되지 않고/n 그대로 표시된다
배열의 []를 포함한 개행 없음
inspect
putsメソッド
와 printメソッド
는 내부적으로 인수로 전달 된 객체에 대해 to_sメソッド
를 호출하여 문자열로 변환합니다.pメソッド
는 to_sメソッド
대신 inspectメソッド
를 호출합니다.캐릭터 라인이 출력 후에 더블 쿼트 첨부가 되어 있던 이유로서 내부적으로 String 클래스의 inspect 메소드가 불려 가 값이 출력되고 있다.
inspect 메소드는 개발자에게 유용한 정보를 포함합니다.
차이에 대해 실제로 검증한 결과👇
모듈 이름이 실행 결과로 출력.
대상이 클래스인 경우,
#<クラス名:オブジェクトid インスタンス変数>
가 실행 결과로서 출력.클래스에 대해
to_sメソッド
와 비교하면inspectメソッド
에서는 클래스 이름과 객체 id와 인스턴스 변수를 출력,to_sメソッド
는 클래스 이름과 객체 id만 출력하고 인스턴스 변수는 출력하지 않습니다.배열 해시 모두 값이 그대로 표시됩니다.
문자열에 관해서 to_s와 비교하면 더블 쿼트로 둘러싸여 있는지 여부의 차이가 있다.
nil
에 관해서는 to_s
로 출력했을 경우는 실행 결과로서 표시되지 않는다.
Reference
이 문제에 관하여(puts 메소드, print 메소드, p 메소드의 차이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuri0225/items/9eddd2fa37c19087760d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)