puts,print,p.md

August 13, 2021 · View on GitHub

puts, print, p özellikleri

  • Rubyde ekrana yazı yazdırma işlemi için birden fazla fonksiyon bulunur.
  • Bunların hepsi kendi aralarında farklı özelliklere sahiptir.

puts

  • Kullanıcının yazdığı değerleri ekrana yazdırır.
  • Değer olarak nil döndürür.
  • Otomatik olarak argümanların sonuna \n karakteri ekler.
  • Yaptığı şey aslında her değere to_s metodunu çalıştırır.

örnekler:

puts "merhaba dünya"
merhaba dünya

puts "selam","merhaba","dünya"
selam
merhaba
dünya

puts [1,2,3]
1
2
3

liste içindeki tüm değerlere to_s metodunu çalıştırır ve hepsinin sonuna \n karakteri ekler.

puts [1,2,3]. join(",")
1,2,3

puts [1,nil,nil,3]
1

3

puts """çoklu
satırlar
için
3 tırnak
"""
#ya da
puts <<-STRING
aaa
bbb
ccc
STRING
çoklu
satırlar
için
3 tırnak
aaa
bbb
ccc

x = 5
puts "x = #{x}"
x = 5

bu şekilde stringlerin içerisine formatlama yapabiliriz.


print

  • kullanıcının yazdığı değerleri ekrana yazdırır.
  • değer olarak nil döndürür.
  • otomatik olarak argümanların sonuna \n karakteri eklemez.
  • putstan farklı olarak direkt girdiyi ekrana yazdırır.

örnekler:

print "merhaba dünya"
merhaba dünya

print "selam","merhaba","dünya"
selammerhabadünya

gördüğünüz üzere kelimeleri birleşik yazdı \n karakteri kullanmadan.

print "selam"
print "merhaba"
print "dünya"
selammerhabadünya

gene aynı şekilde bitişik yazdı bunu hepsinin sonuna \n karakleyerek düzeltebiliriz.

print "selam\n"
print "merhaba\n"
print "dünya\n"
selam
merhaba
dünya

şimdi gördüğünüz gibi alt alta yazdı.

print [1,2,3]
[1,2,3]

putsun aksine direkt girdiyi ekrana yazdırır.

print [1,2,3]. join("\n")
1
2
3

bu şekilde alt alta yazabiliriz.


p

  • ekrana raw objeyi yazmak için kullanılır.
  • puts ve print ten farklı olarak içine aldığı değeri döndürür.
  • argümanların sonu \n otomatik karakteri ekler.
  • debugging (hata ayıklama) için kullanılabilir.

örnekler:

p "merhaba dünya"
"merhaba dünya"

p "selam","merhaba","dünya"
"selam"
"merhaba"
"dünya"

p [1,2,3]
[1,2,3]

def p_test
p "selam"
end

p_test
selam

gördüğünüz gibi selam değerini döndü fonksiyon puts veya printkullansaydık nil değerini dönecekti.

def puts_test
puts "selam"
end
puts_test
selam

selam döğerini ekrana gösteriyor ama nil değerini dönüyor aslında.

def puts_test
puts "selam"
end

p puts_test
selam
nil

p ile debugging yaptığımızda nil değerini gösteriyor.