Hướng dẫn nối chuỗi trong Ruby

0

 
lập trình ruby
lập trình ruby
 
 Nối chuỗi trong ruby rất đơn giản và dễ nhớ các bạn có thể làm theo 2 cách ở dưới đây. Chúc các bạn thành công

Nối chuỗi với +=
first_name = "Paul"
name = first_name
last_name = "Brian"
name += last_name
Bây giờ mình kiểm tra:
  • name ==> nó trả về kết quả PaulBrian
  • first_name ==> nó trả về kết quả Paul
Nối chuỗi với <<
first_name = "Paul"
name = first_name
last_name = "Brian"
name << last_name
Bây giờ mình kiểm tra:
  • name ==> nó trả về kết quả PaulBrian
  • first_name ==> nó trả về kết quả PaulBrian
Vì sao lại có kết quả như vậy?
Chúng ta sẽ kiểm tra **object_id* của name, first_name:*
first_name = "Paul"
name = first_name
name.object_id --> 70148644941380
first_name.object_id --> 70148644941380
Phép gán name = first_name lúc này name & first_name có cùng 1 object_id và khi thực hiện:
  • << nó sẽ xử lý trực tiếp trên object của nó, vì vậy khi name thay đổi thì first_name cũng thay đổi theo.
  • += nó sẽ tạo ra một object mới, vì vậy khi thay đổi name thì first_name không bị ảnh hưởng.
Đánh giá
Mình sẽ sử dụng benchmark để xem thời gian thực hiện của 2 cách làm này
require 'benchmark`

n = 10000

Benchmark.bm do |benchmark|
  benchmark.report("+=") do
    n.times do
      first_name = "Paul"
      name = first_name
      last_name = "Brian"
      name += last_name
    end
  end

  benchmark.report("<<") do
    n.times do
      first_name = "Paul"
      name = first_name
      last_name = "Brian"
      name << last_name
    end
  end
end
Kết quả:
       user     system      total        real
+=  0.010000   0.000000   0.010000 (  0.007283)
<<  0.000000   0.000000   0.000000 (  0.004042)
Qua đó mình thấy được tốc độ xử lý của << sẽ hiệu quả hơn +=

Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.

buttons=(Accept !) days=(20)

Our website uses cookies to enhance your experience. Learn More
Accept !