Biến và Kiểu Dữ Liệu trong Ruby
1. Biến trong Ruby là gì?
Biến (variable) trong Ruby là một tên đại diện cho một giá trị được lưu trong bộ nhớ. Ruby là một ngôn ngữ động, có nghĩa là bạn không cần khai báo kiểu dữ liệu cho biến, mà Ruby sẽ tự động xác định kiểu dựa trên giá trị của nó.
Ví dụ:
name = "Ruby"
age = 25
is_active = true
Trong đoạn code trên:
-
name
là một biến có giá trị chuỗi"Ruby"
. -
age
là một biến có giá trị số25
. -
is_active
là một biến có giá trịtrue
(kiểu Boolean).
2. Quy tắc đặt tên biến trong Ruby
- Tên biến phải bắt đầu bằng một chữ cái (
a-z
,A-Z
) hoặc dấu gạch dưới (_
). - Không được bắt đầu bằng số.
- Phân biệt chữ hoa và chữ thường (
name
khácName
). - Tránh dùng từ khóa của Ruby (vd:
class
,def
,if
,while
...).
Ví dụ hợp lệ:
user_name = "Alice"
_userAge = 30
number1 = 100
Ví dụ không hợp lệ:
1name = "Bob" # Sai, không thể bắt đầu bằng số
class = "Ruby" # Sai, "class" là từ khóa
3. Các loại biến trong Ruby
Ruby có 4 loại biến chính:
Loại biến | Ký hiệu | Phạm vi |
---|---|---|
Biến cục bộ | name |
Chỉ có hiệu lực trong một phạm vi nhất định (hàm, block). |
Biến toàn cục | $global_var |
Có thể truy cập từ bất kỳ đâu trong chương trình. |
Biến instance | @instance_var |
Chỉ có hiệu lực trong một object cụ thể. |
Biến class | @@class_var |
Dùng chung cho tất cả instance của class. |
Ví dụ:
$global_var = "Tôi là biến toàn cục"
class Demo
@@class_var = "Tôi là biến class"
def initialize
@instance_var = "Tôi là biến instance"
local_var = "Tôi là biến cục bộ"
puts local_var # Có thể truy cập được
end
end
demo = Demo.new
puts $global_var # Truy cập được
# puts local_var # Lỗi: biến cục bộ không thể truy cập bên ngoài phương thức
4. Kiểu dữ liệu trong Ruby
Ruby có nhiều kiểu dữ liệu khác nhau, dưới đây là những kiểu phổ biến nhất:
4.1. Kiểu số (Integer, Float)
-
Integer
: Số nguyên (1, 100, -5). -
Float
: Số thực (3.14, -2.5, 0.99).
Ví dụ:
num1 = 10 # Integer
num2 = 3.14 # Float
puts num1.class # Integer
puts num2.class # Float
4.2. Kiểu chuỗi (String)
Chuỗi là tập hợp các ký tự, có thể được tạo bằng dấu nháy đơn '
hoặc nháy kép "
.
Ví dụ:
str1 = "Hello"
str2 = 'World'
puts str1 + " " + str2 # Nối chuỗi
puts "Số ký tự: #{str1.length}" # Nội suy chuỗi
Lưu ý:
- Dấu
#{}
chỉ hoạt động trong chuỗi có nháy kép"..."
, không hoạt động với nháy đơn'...'
. - Có thể sử dụng nhiều phương thức chuỗi như
.upcase
,.downcase
,.capitalize
,.reverse
.
4.3. Kiểu Boolean (True/False)
Ruby chỉ có hai giá trị Boolean: true
và false
.
is_active = true
is_deleted = false
puts is_active.class # TrueClass
puts is_deleted.class # FalseClass
Lưu ý: Trong Ruby, chỉ có false
và nil
là "falsey" (coi là giá trị sai). Tất cả các giá trị khác đều là "truthy" (coi là đúng).
4.4. Kiểu Nil (Giá trị rỗng)
nil
đại diện cho một giá trị không tồn tại hoặc không xác định.
x = nil
puts x.nil? # true
4.5. Kiểu Array (Mảng)
Array là danh sách các phần tử, có thể chứa nhiều kiểu dữ liệu khác nhau.
arr = [1, "Ruby", true, 3.14]
puts arr[0] # Lấy phần tử đầu tiên (1)
puts arr[-1] # Lấy phần tử cuối cùng (3.14)
Một số phương thức hữu ích:
arr.push("New") # Thêm phần tử vào cuối
arr.pop # Xóa phần tử cuối
puts arr.length # Độ dài mảng
4.6. Kiểu Hash (Từ điển)
Hash lưu trữ cặp key-value, giống như một từ điển.
person = {
"name" => "Alice",
"age" => 25,
"job" => "Developer"
}
puts person["name"] # Alice
Cú pháp hash mới (symbol keys):
person = {
name: "Alice",
age: 25,
job: "Developer"
}
puts person[:name] # Alice
5. Ép kiểu trong Ruby
Ruby cho phép ép kiểu giữa các loại dữ liệu bằng các phương thức như:
"123".to_i # Chuyển chuỗi thành số: 123
123.to_s # Chuyển số thành chuỗi: "123"
"3.14".to_f # Chuyển chuỗi thành số thực: 3.14
6. Kết luận
Trong bài này, chúng ta đã học về:
- Biến trong Ruby và cách đặt tên biến.
- Các loại biến: cục bộ, toàn cục, instance, class.
- Các kiểu dữ liệu cơ bản: số, chuỗi, boolean, nil, array, hash.
- Cách ép kiểu dữ liệu trong Ruby.
Ở bài tiếp theo, chúng ta sẽ học về toán tử trong Ruby.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com