Kết hợp nhiều chuỗi với nhau là điều bạn phải làm thường xuyên trong Ruby.
Nhưng làm thế nào bạn có thể làm điều đó?
Chà…
Có hai cách :
- Nối chuỗi Ruby
- Nội suy chuỗi Ruby
Kết nối trông giống như thế này :
a = "Nice to meet you" b = ", " c = "do you like blueberries?" a + b + c # "Nice to meet you, do you like blueberries?"
Bạn có thể sử dụng +
toán tử để nối một chuỗi vào một chuỗi khác.
Trong trường hợp này, a + b + c
, tạo một chuỗi mới.
Btw, bạn không cần phải sử dụng các biến để làm cho điều này hoạt động.
Ví dụ :
puts "I like" + " " + "chocolate" # I like chocolate
Một tùy chọn khác là sử dụng +=
nhà điều hành.
Ví dụ :
a = "" a += "test" a += "test" a += "test" a # "testtesttest"
Chúng tôi bắt đầu với một chuỗi trống và chúng tôi xây dựng một chuỗi lớn hơn bằng cách thêm vào đó.
Nhưng có một vấn đề với điều này…
Nó rất chậm!
Giải pháp sắp ra mắt tiếp theo.
Ví dụ về phương pháp Ruby Concat
Bạn có thể sử dụng Ruby concat
phương pháp hợp nhất các chuỗi một cách hiệu quả.
Đây là cách thực hiện :
str = "" str.concat("a") str.concat("a") str # "aa"
Nhanh hơn vì nó sẽ thay đổi chuỗi str
, thay vì tạo một cái mới.
Nhưng điều này không đẹp bằng +=
…
Có cách nào khác không?
Vâng!
Bạn có thể sử dụng <<
phương thức, là bí danh cho concat
.
Lưu ý :Bắt đầu với Ruby 2.4, có một sự khác biệt nhỏ, với
concat
bạn có thể chuyển nhiều đối số, với<<
bạn chỉ có thể vượt qua một lần một lúc.
Ví dụ :
str = "" str << "a" str << "a"
Bạn cũng có thể làm điều này :
str = "" str << "a" << "a"
Chỉ còn một vấn đề.
Nếu bạn muốn kết hợp một chuỗi với các biến, nhưng một trong các biến không phải là chuỗi, bạn sẽ nhận được kết quả không mong muốn.
Hãy xem :
"" + 1 # TypeError: no implicit conversion of Fixnum into String "" << 1 # "\x01"
Giải pháp là gì?
Sử dụng phương thức to_s để chuyển đổi tất cả các đối tượng mới thành chuỗi.
Như thế này :
"" + 1.to_s
Tất nhiên, điều này trở nên xấu đi nhanh chóng, vì vậy chúng tôi có một công cụ khác mà bạn có thể sử dụng.
Cách sử dụng phép nội suy chuỗi Ruby
Nội suy hoặc hợp nhất các biến thành chuỗi là một kỹ thuật mạnh mẽ.
Nó cho phép bạn "tạo khuôn mẫu" một chuỗi.
Đây là một ví dụ :
age = 33 name = "Jesus" "Hello, my name is #{name} & I'm #{age} years old."
Chúng tôi có thể cắm bất kỳ name
nào &age
bằng cách đặt chúng làm biến trước chuỗi.
Phần tốt nhất?
Ruby sẽ giúp bạn chuyển đổi những giá trị này thành chuỗi.
Vì vậy, bạn không cần phải gọi to_s
!
Tốt.
Chuỗi ưu tiên
Có một cách khác để kết hợp chuỗi với nhau.
Thay vì kết hợp các biến &chuỗi nhỏ hơn thành một thứ gì đó mới bằng "nội suy chuỗi".
Hoặc thêm vào cuối bằng <<
&concat
.
Bạn cũng có thể prepend
!
Ví dụ :
str = "" str.prepend("1") str.prepend("2") str.prepend("3") # "321"
Nếu bạn nghĩ rằng có một append
phương pháp, tốt là không có.
Chỉ dành cho mảng.
Tóm tắt
Bạn đã học về nối chuỗi, nối thêm, thêm trước và nội suy trong Ruby, điều này cho phép bạn kết hợp nhiều chuỗi với nhau.
Hãy chia sẻ bài viết này nếu bạn thấy hữu ích 🙂
Cảm ơn vì đã đọc.