Toán Tử trong Ruby
Trong Ruby, toán tử là các ký hiệu hoặc từ khóa được sử dụng để thực hiện các phép toán trên giá trị hoặc biến. Ruby hỗ trợ nhiều loại toán tử khác nhau như toán tử số học, toán tử so sánh, toán tử logic, toán tử gán, v.v.
1. Toán tử số học
Toán tử số học được sử dụng để thực hiện các phép toán với số.
Toán tử | Ý nghĩa | Ví dụ |
---|---|---|
+ |
Cộng | 5 + 3 → 8 |
- |
Trừ | 10 - 4 → 6 |
* |
Nhân | 6 * 7 → 42 |
/ |
Chia | 8 / 2 → 4 |
% |
Chia lấy dư | 10 % 3 → 1 |
** |
Lũy thừa | 2 ** 3 → 8 |
Ví dụ:
a = 10
b = 3
puts a + b # 13
puts a - b # 7
puts a * b # 30
puts a / b # 3 (Chia lấy phần nguyên)
puts a.to_f / b # 3.3333333333333335 (Chia lấy số thực)
puts a % b # 1
puts a ** b # 1000 (10^3)
Lưu ý: Khi chia số nguyên (Integer
), Ruby sẽ làm tròn xuống. Để có kết quả chính xác, hãy chuyển một trong hai số thành Float
(a.to_f / b
).
2. Toán tử gán
Toán tử gán dùng để gán giá trị cho biến.
Toán tử | Ý nghĩa | Ví dụ |
---|---|---|
= |
Gán giá trị | a = 10 |
+= |
Cộng rồi gán | a += 2 → a = a + 2 |
-= |
Trừ rồi gán | a -= 3 → a = a - 3 |
*= |
Nhân rồi gán | a *= 4 → a = a * 4 |
/= |
Chia rồi gán | a /= 5 → a = a / 5 |
%= |
Chia dư rồi gán | a %= 6 → a = a % 6 |
**= |
Lũy thừa rồi gán | a **= 2 → a = a ** 2 |
Ví dụ:
x = 10
x += 5 # x = x + 5 → x = 15
x *= 2 # x = x * 2 → x = 30
puts x
3. Toán tử so sánh
Dùng để so sánh giá trị giữa hai biến.
Toán tử | Ý nghĩa | Ví dụ (a = 5 , b = 3 ) |
---|---|---|
== |
So sánh bằng | a == b → false |
!= |
So sánh khác | a != b → true |
> |
Lớn hơn | a > b → true |
< |
Nhỏ hơn | a < b → false |
>= |
Lớn hơn hoặc bằng | a >= b → true |
<= |
Nhỏ hơn hoặc bằng | a <= b → false |
<=> |
Toán tử so sánh không gian (spaceship) | a <=> b → 1 |
Ví dụ:
a = 5
b = 3
puts a == b # false
puts a != b # true
puts a > b # true
puts a <=> b # 1 (a lớn hơn b)
Toán tử <=>
trả về:
-
-1
nếu giá trị bên trái nhỏ hơn giá trị bên phải. -
0
nếu hai giá trị bằng nhau. -
1
nếu giá trị bên trái lớn hơn giá trị bên phải.
4. Toán tử logic
Dùng để kết hợp nhiều điều kiện logic.
Toán tử | Ý nghĩa | Ví dụ (x = true , y = false ) |
---|---|---|
&& |
AND (Cả hai đều đúng) | x && y → false |
` | ` | |
! |
NOT (Phủ định) | !x → false |
Ví dụ:
a = 5
b = 10
puts (a > 0 && b > 0) # true (cả hai điều kiện đúng)
puts (a > 0 || b < 0) # true (một trong hai điều kiện đúng)
puts !(a < 0) # true (phủ định điều kiện sai)
5. Toán tử điều kiện (Ternary Operator)
Toán tử ? :
là dạng rút gọn của câu lệnh if...else
.
age = 18
message = age >= 18 ? "Đủ tuổi" : "Chưa đủ tuổi"
puts message # Đủ tuổi
Tương đương với:
if age >= 18
message = "Đủ tuổi"
else
message = "Chưa đủ tuổi"
end
puts message
6. Toán tử Range (..) và (...)
Dùng để tạo phạm vi số hoặc chữ.
Toán tử | Ý nghĩa | Ví dụ |
---|---|---|
.. |
Phạm vi bao gồm giá trị cuối | (1..5) → [1, 2, 3, 4, 5] |
... |
Phạm vi không bao gồm giá trị cuối | (1...5) → [1, 2, 3, 4] |
Ví dụ:
range1 = (1..5).to_a # [1, 2, 3, 4, 5]
range2 = (1...5).to_a # [1, 2, 3, 4]
puts range1.inspect
puts range2.inspect
7. Toán tử defined?
Dùng để kiểm tra xem một biến hoặc phương thức có tồn tại không.
x = 10
puts defined? x # "local-variable"
puts defined? y # nil (vì y chưa được khai báo)
puts defined? puts # "method"
8. Toán tử & và | với Bit
Dùng để thao tác trên từng bit của số nguyên.
Toán tử | Ý nghĩa | Ví dụ (a = 5, b = 3) |
---|---|---|
& |
AND bit | 5 & 3 → 1 |
` | ` | OR bit |
^ |
XOR bit | 5 ^ 3 → 6 |
~ |
NOT bit (Đảo bit) | ~5 → -6 |
<< |
Dịch bit trái | 5 << 1 → 10 |
>> |
Dịch bit phải | 5 >> 1 → 2 |
Ví dụ:
a = 5 # 101
b = 3 # 011
puts a & b # 001 -> 1
puts a | b # 111 -> 7
puts a ^ b # 110 -> 6
puts ~a # Đảo bit của 5
Kết luận
Trong bài này, chúng ta đã học về các toán tử quan trọng trong Ruby, từ toán tử số học đến toán tử logic, toán tử điều kiện và toán tử bit. Ở bài tiếp theo, chúng ta sẽ học về Cấu trúc điều kiện 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