programing

인쇄물과 인쇄물의 차이점은 무엇입니까?

goodsources 2023. 5. 31. 15:53
반응형

인쇄물과 인쇄물의 차이점은 무엇입니까?

예를 들어, 제가 쓴 이 코드 라인에서,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

반응형