Kiểu dữ liệu Text trong Ruby (còn gọi là chuỗi / string)
Trong bài này mình sẽ giới thiệu kiểu dữ liệu Text trong Ruby, đây là kiểu dữ liệu thường dùng để lưu trữ các chuỗi string trong Ruby.
1. String cơ bản
Để tiếp tục với những tìm hiểu về các kiểu dữ liệu trong Ruby thì trong bài này mình sẽ giới thiệu một kiểu dữ liệu rất phổ biến đó là kiểu dữ liệu String.
Nếu như bạn là người mới bắt đầu tiếp xúc với ngôn ngữ lập trình mình có thể giải thích đơn giản là kiểu dữ liễu String là kiểu dữ liệu chuỗi các ký tự.
Để định nghĩa một String chúng ta cần phải để chúng trong dấu nháy đơn hoặc dấu nháy kép.
Bài viết này được đăng tại [free tuts .net]
"Hello World" // hoặc 'Hello World'
Nói một cách đơn giản hơn thì các ký tự, hoặc chuỗi nếu bạn để trong dấu nháy đơn hay dấu nháy kép thì được coi là kiểu dữ liệu String.
"Hello world".class => String 'Hello world'.class => String
Tất nhiên là chúng ta có thể sử dụng dấu nháy đơn hay dấu nháy kép tùy ý thích, thế nhưng đối với dấu nháy kép chúng ta có thể sử dụng được phép nội suy, cái này mình sẽ trình bày ở phần tiếp theo của bài
Nếu một chuỗi chỉ bao gồm hai dấu nháy (đơn hoặc kép) thì được gọi là một empty string
"".class => String
2. In giá trị của một chuỗi
Để in giá trị của một chuỗi hay một biến, chúng ta có thể sử dụng hàm puts.
Chúng ta có thể khai báo biến rồi in ra
name = "quang phu" => "quang phu" puts name quang phu => nil
hoặc in luôn giá trị trực tiếp đều được
puts "quang phu" quang phu puts 'quang phu' quang phu
Tương tự với hàm puts, chúng ta còn một hàm nữa là hàm print. Điểm khác biệt giữa print và puts là print không tự động xuống dòng.
print 123 print 456 print 789 Kết quả : 123456789
Còn đối với puts
put 123 put 456 put 789 Kết quả : 123 456 789
Ngoài puts và print ra chúng ta còn một cách in giá trị nữa là sử dụng p. Khii sử dụng p thì in ra raw string, nghĩa là chúng ta ghi như thế nào thì nó in ra thế ấy
p "quang phu" "quang phu"
còn puts
puts "quang phu" quang phu
3. Single-quoted string literals
Ở phần trên mình có nhắc tới là chúng ta có thể để các chuỗi kí tự trong nháy đơn hoặc dấu nháy kép đều được. Ở phần này mình sẽ nói rõ hơn về Single-quoted string (dấu nháy đơn) trước.
Một chuỗi sử dụng single-quoted có dạng như thế này
'Đây là một chuỗi sử dụng single-quoted'
Một chuỗi sử bắt đầu bằng một dấu nháy đơn và kết thúc bằng một dấu nháy đơn. Khi một dấu nháy đơn xuất hiện trong chuỗi, nó sẽ được coi là sự kết thúc hay bắt đầu của một chuỗi, nếu như chúng ta muốn coi đó như là một phần tử ở trong chuỗi thì phải đặt trước dấu nháy đơn đó một dấu backlash (\),
irb(main):008:0> 'I'm nguyen quang phu' => "I'm nguyen quang phu"
Mục đích của dấu backlash này là escape dấu nháy đơn trong đoạn chuỗi trên, dấu backlash này cũng có thể tự escape chính nó
puts 'Toi la nguyen quang phu \\ ' Toi la nguyen quang phu \ // câu lệnh trên sữ giống luôn câu lệnh này puts 'Toi la nguyen quang phu \ ' Toi la nguyen quang phu \
Một điều đặc biệt của dấu nháy đơn so với dấu nháy kép này là chúng ta không thể thực hiện được phép nội suy trong dấu nháy đơn. Nó sẽ không nhận biết được một biến được gọi ở trong chuỗi để dịch ra giá trị của nó.
a = "nguyen quang phu" => "nguyen quang phu" puts 'toi la #{a}' toi la #{a}
Như các bạn thấy ở ví dụ trên, dấu nháy đơn không nhận dạng được biến a chúng ta đã khai báo.
4. Double-quoted string literals
Cũng tương tự như single-quoted, nhưng double-quoted có chức năng mạnh hơn. Nó giúp chúng ta sử dụng được các kí hiệu xuống dòng, lùi tab: \n hay \t... điều mà single-quoted không làm được.
puts "xuong \n dong" xuong dong
còn với single-quoted chỉ hiểu đó là một kí tự bình thường ở trong chuỗi
puts 'xuong \n dong' xuong \n dong
Như ở trên mình có nói, đối với double-quoted sẽ có thể sử dụng được phép nội suy trong chuỗi string
puts "hello #{a}" hello quang phu
hay là chúng ta cũng có thể tính toàn trong chính double-quouted
puts "#{2*3}" 6
Hãy nhớ là để in một giá trị ở trong chuỗi chúng ta sử dụng cú pháp #{..}
Như có nói ở trên, chúng ta sử dụng backlash để escape kí tự dấu nháy đơn, ngoài cách này ra thì chúng ta cũng có một cách khác đó là lồng giữ dấu nháy đôi và dấu nháy đơn lại với nhau.
puts "I'm nguyen quang phu" I'm nguyen quang phu
5. String Concatenation
String concatenation là chúng ta sẽ nối hai chuỗi lại với nhau, để nối hai chuỗi lại với nhau trong ngôn ngữ Ruby bạn sử dụng ký tự +. Nếu bạn là một người từng làm việc với Javascript thì trong JS chúng ta cũng sử dụng dấu + để nối hai chuỗi lại.
"quang" + "phu" => "quangphu"
Liên hệ lại một chút ở trên, chúng ta có thể in biến ngay trong chuỗi bằng cách sử dụng #{}. Có cách dài dòng hơn chính là sử dụng kiểu nối chuỗi
puts "ten toi la " + name + "." ten toi la quang phu.
nhưng rõ ràng là cách sử dụng #{} nhanh hơn rất nhiều.
6. Kết luận
Trên đây là những kiến thức khi làm việc với string trong Ruby, các bạn hãy cố gắng nắm bắt thật kĩ những cái này vì khi làm việc thực tế có thể sẽ gặp rất nhiều.