Computer >> Máy Tính >  >> Lập trình >> Ruby

Hiểu sự khác biệt giữa Puts, Print &P

Có nhiều cách để in thứ gì đó trong Ruby.

Đây là những điều hữu ích nhất :

  • đặt
  • in
  • p

Nhưng chúng khác nhau như thế nào?

khi nào bạn nên sử dụng cái này hay cái kia ?

Đó là những gì bạn sẽ tìm hiểu trong bài viết này!

Cách in mà không cần dòng mới

Khi bạn muốn in thứ gì đó trên màn hình để người dùng xem, bạn thường sử dụng puts .

Như thế này :

puts "Hello there!"

Puts tự động thêm một dòng mới vào cuối tin nhắn của bạn mỗi khi bạn sử dụng nó.

Nếu bạn không muốn một dòng mới, hãy sử dụng print .

Ví dụ :

print 123

Lần tiếp theo bạn print một cái gì đó nó sẽ là một dòng giống như tin nhắn cuối cùng của bạn.

Ví dụ :

print 123
print 456
print 789

123456789

Nhưng nếu bạn sử dụng đặt :

puts 123
puts 456
puts 789

123
456
789

Mỗi tin nhắn đều có dòng riêng!

Puts cũng xử lý mảng theo một cách khác.

Ví dụ :

puts [1,2]
1
2

print [1,2]
[1,2]

Đây là một sự khác biệt khác :

Puts cố gắng chuyển đổi mọi thứ thành một chuỗi (bằng cách gọi to_s ).

Tại sao điều đó lại quan trọng?

Bởi vì nếu bạn đang cố gắng puts một mảng có giá trị nil…

Nó sẽ hiển thị một số dòng trống!

Ví dụ :

puts [1,nil,nil,2]
1


2

Tóm lại, puts &print :

  • Chuyển đổi mọi thứ thành chuỗi, ngay cả khi điều đó có nghĩa là một chuỗi rỗng

Chỉ puts :

  • Thêm một dòng mới vào cuối tin nhắn của bạn
  • Hiển thị các phần tử mảng một trên mỗi dòng

Đầu ra gỡ lỗi với P

Còn đặt và p thì sao?

p là một phương thức hiển thị phiên bản "thô" hơn của một đối tượng.

Ví dụ :

> puts "Ruby Is Cool"
Ruby Is Cool

> p "Ruby Is Cool"
"Ruby Is Cool"

p là gì hữu ích cho?

Gỡ lỗi.

Khi bạn đang tìm kiếm những thứ như ký tự dòng mới (thường ẩn) hoặc bạn muốn đảm bảo một số giá trị là chính xác, thì bạn sử dụng p .

Một sự khác biệt khác :

  • đặt luôn trả về con số không
  • p trả về đối tượng mà bạn chuyển cho nó

Đây là một sự khác biệt kỹ thuật hơn…

Nhưng nó có thể hiển thị nếu bạn cố gắng puts một biến ở dòng cuối cùng của một phương thức và bạn đang sử dụng giá trị trả về của phương thức đó.

Ví dụ :

def numbers
  puts 123
end

numbers
# nil

Trong ví dụ này, numbers phương thức sẽ hiển thị 123 trên màn hình, nhưng giá trị trả về của nó sẽ là nil .

Nếu bạn thử :

result = numbers

Sau đó, result sẽ là nil , thay vì 123.

Nhưng nếu bạn sử dụng p thì nó sẽ hoạt động.

In ấn đẹp

Ruby có một phương pháp in khác.

Được gọi là pp .

Điều này giống như p , nhưng nó in các hàm băm &mảng lớn theo cách đẹp hơn.

Lưu ý rằng phiên bản Ruby cũ hơn (trước 2.4) cần thực hiện require 'pp' để có quyền truy cập vào phương pháp này.

Hướng dẫn bằng video

Tóm tắt

Bạn đã tìm hiểu về sự khác biệt giữa các cách đặt, in và p trong Ruby!

Hiểu sự khác biệt giữa Puts, Print &P

Bây giờ là thời gian luyện tập .

Nếu bạn thực hành với một cái gì đó mới ngay lập tức, bạn sẽ tích hợp thông tin này vào cơ sở kiến ​​thức của mình, nếu bạn không thực hành, bạn sẽ quên và bạn sẽ không tiến bộ.