06/04/2021, 14:47

Kiểu dữ liệu Text trong Ruby (còn gọi là chuỗi / string) - Ruby căn bản

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ữ ...

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.

"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 printputsprint 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 putsprint 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: hay ... điều mà single-quoted không làm được.

puts "xuong 
 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 
 dong'
xuong 
 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

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.

Tạ Quốc Bảo

23 chủ đề

7270 bài viết

0