Tôi có hai dây:Truncate chuỗi khi nó quá dài
short_string = "hello world"
long_string = "this is a very long long long .... string" # suppose more than 10000 chars
Tôi muốn thay đổi hành vi mặc định của print
tới:
puts short_string
# => "hello world"
puts long_string
# => "this is a very long long....."
Các long_string
được in chỉ một phần. Tôi đã cố gắng thay đổi String#to_s
, nhưng nó không hoạt động. Có ai biết làm thế nào để làm điều đó như thế này?
cập nhật
Trên thực tế tôi muốn nó hoạt động trơn tru, có nghĩa là các trường hợp sau đây cũng hoạt động tốt:
> puts very_long_str
> puts [very_long_str]
> puts {:a => very_long_str}
Vì vậy, tôi nghĩ rằng hành vi thuộc về String.
Cảm ơn mọi người.
Đã khắc phục một số sự cố với mã. – kristinalim
Nó trả về 'nil' khiến nó khó kiểm tra hơn một chút. Nó có lẽ chỉ cần trả lại một chuỗi cắt ngắn. – vgoff
Câu trả lời được cập nhật để trả về chuỗi bị cắt ngắn, như @vgoff đề xuất. – kristinalim