인쇄물과 인쇄물의 차이점은 무엇입니까?
예를 들어, 제가 쓴 이 코드 라인에서,print
그리고.puts
다른 결과를 낳습니다.
1.upto(1000).each { |i| print i if i % 2 == 0 }
puts
각 인수가 아직 없는 경우 각 인수의 끝에 새 행을 추가합니다.
print
새 줄을 추가하지 않습니다.
예:
puts [[1,2,3], [4,5,nil]]
반환할 항목:
12345
반면에.print [[1,2,3], [4,5,nil]]
반환할 항목:
[1,2,3], [4,5,5]
puts가 nil 값을 출력하지 않는 반면 puts는 nil 값을 출력하지 않습니다.
큰 차이점은 배열을 표시하는 경우입니다.특히 NIL이 있는 것들.예:
print [nil, 1, 2]
기브즈
[nil, 1, 2]
그렇지만
puts [nil, 1, 2]
기브즈
1
2
표시되지 않는 항목(빈 줄만 있음)과 각 항목이 서로 다른 줄에 표시됩니다.
print
각 인수를 출력한 다음,$,
,로.$stdout
다음에$\
이에 해당합니다.args.join($,) + $\
puts
둘 다 설정$,
그리고.$\
"\n"하고 다음과 같은 작업을 수행합니다.print
주요 차이점은 각 인수가 다음과 같은 새로운 행이라는 것입니다.puts
.
넌 할 수 있다.require 'english'
사용자에게 친숙한 이름으로 글로벌 변수에 액세스할 수 있습니다.
API 문서는 다음과 같은 유용한 힌트를 제공합니다.
print() → nil
print(obj, ...) → nil
지정된 개체를 ios에 씁니다.돌아온다
nil
.쓰기 위해 스트림을 열어야 합니다.문자열이 아닌 각 지정된 개체는 해당 개체를 호출하여 변환됩니다.
to_s
방법.인수 없이 호출되면 의 내용을 인쇄합니다.$_
.출력 필드 구분 기호(
$,
)가 아닙니다.nil
개체 사이에 삽입됩니다.출력 레코드 구분 기호($\
)가 아닙니다.nil
출력에 추가됩니다....
puts(obj, ...) → nil
지정된 개체를 ios에 씁니다.새 줄 시퀀스로 끝나지 않은 줄을 새 줄로 씁니다.돌아온다
nil
.쓰기 위해 스트림을 열어야 합니다.배열 인수와 함께 호출되는 경우 각 요소를 새 줄에 씁니다.문자열 또는 배열이 아닌 각 지정된 개체는 해당 개체를 호출하여 변환됩니다.
to_s
방법.인수 없이 호출되면 새 줄 하나를 출력합니다.
위에 제시된 사항을 조금 실험해 보면, 차이점은 다음과 같습니다.
여러 인수로 호출됩니다.
print
'출력 필드 구분 기호'로 구분합니다.$,
(기본값은 없음) 동안puts
새 줄로 구분합니다.puts
또한 마지막 논쟁 후에 새로운 선을 긋습니다, 반면에.print
하지 않다.2.1.3 :001 > print 'hello', 'world' helloworld => nil 2.1.3 :002 > puts 'hello', 'world' hello world => nil 2.1.3 :003 > $, = 'fanodd' => "fanodd" 2.1.3 :004 > print 'hello', 'world' hellofanoddworld => nil 2.1.3 :005 > puts 'hello', 'world' hello world => nil
puts
자동으로 어레이의 패키지를 해제하는 동안print
하지 않음:2.1.3 :001 > 인쇄 [1, [2, 3], [4][1, [2, 3]][4] => 02.1.3:002 > 풋 [1, [2, 3], [4]1234=> 0
print
없이 인없 이인쇄$_
(가 마지막으로 읽은 것) 한편.puts
줄을 합니다.2.1.3 :001 > gets hello world => "hello world\n" 2.1.3 :002 > puts => nil 2.1.3 :003 > print hello world => nil
print
구분 기호를 씁니다.$\
에, 쇄물이무간에든엇이반에, 면인에▁after▁whatever.puts
이 합니다.mark@lunchbox:~$ irb 2.1.3 :001 > $\ = 'MOOOOOOO!' => "MOOOOOOO!" 2.1.3 :002 > puts "Oink! Baa! Cluck! " Oink! Baa! Cluck! => nil 2.1.3 :003 > print "Oink! Baa! Cluck! " Oink! Baa! Cluck! MOOOOOOO! => nil
puts
를 부르다to_s
각 인수의 새 행으로 끝나지 않는 경우 각 문자열에 새 행을 추가합니다. print
를 " 인수를호출력니다합여출하각다▁their니출▁each▁output▁by▁calling"라고 불러 출력하면 .to_s
.
예:puts "one two"
:one two
{new line}
puts "one two\n"
:one two
문자열이 새 줄로 끝나기 때문에 {new line} #hostname이(가) 결과에 새 줄을 추가하지 않습니다.
print "one two"
:one two
print "one two\n"
:one two
{new line}
다른 : 할출수있또다방른있습다니법이는력▁and다.p
각 개체에 대해 obj.inspect를 직접 쓴 다음 프로그램의 표준 출력에 새 줄을 씁니다.
디버깅 메시지를 출력하면 유용합니다. p "aa\n\t"
:aa\n\t
하려면 array를 사용합니다.puts
당신은 당신이 사용했던 것과 같은 결과를 얻을 것입니다.print
:
puts "#{[0, 1, nil]}":
[0, 1, nil]
하지만 따옴표로 묶은 문자열이 없다면 그렇습니다.유일한 차이점은 사용할 때 새 라인 간의 차이입니다.puts
.
언급URL : https://stackoverflow.com/questions/5018633/what-is-the-difference-between-print-and-puts
'programing' 카테고리의 다른 글
org.gradle.api.message.리소스 예외:Android Studio 3.2에서 리소스를 가져올 수 없습니다. (0) | 2023.06.05 |
---|---|
파이썬의 EAFP 원칙은 무엇입니까? (0) | 2023.06.05 |
로컬 cocoapods 캐시에서 특정 포드를 지우거나 치료하는 방법 (0) | 2023.05.31 |
C# 유형에 해당하는 Visual Basic 검사 (0) | 2023.05.31 |
Ruby 또는 Rails를 사용하여 URL에서 URL 매개 변수를 추출하는 방법은 무엇입니까? (0) | 2023.05.31 |