Chuyển đến nội dung chính

Toán tử trong Scala

Tìm hiểu về các toán tử khác nhau được sử dụng trong ngôn ngữ lập trình Scala.
Đã cập nhật 5 thg 10, 2026  · 6 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Lưu ý: Hướng dẫn này là phần tiếp theo của loạt bài Hướng dẫn Scala. Nếu bạn chưa đọc Hướng dẫn nhập môn Scala và IF ELSE trong Scala, hãy xem qua trước.

Giới thiệu

Toán tử là một ký hiệu hoặc hàm biểu thị một phép toán được thực hiện với một hoặc nhiều toán hạng. Có nhiều loại toán tử khác nhau, còn toán hạng có thể hiểu là một biến. Toán tử là nền tảng của mọi ngôn ngữ lập trình. Chúng cho phép thực hiện nhiều kiểu thao tác trên các toán hạng. Toán tử hướng dẫn trình biên dịch thực hiện các phép như toán học (số học), logic, gán, v.v., và cuối cùng xuất ra kết quả.

Có nhiều loại toán tử được dùng trong nhiều ngôn ngữ lập trình cũng như trong Scala, bao gồm:

  • Toán tử quan hệ
  • Toán tử số học
  • Toán tử gán
  • Toán tử logic
  • Toán tử bit

Bạn sẽ học về các toán tử trên cả về lý thuyết lẫn cách dùng trong mã.

Toán tử quan hệ

Toán tử quan hệ chủ yếu dùng để so sánh giữa hai hoặc nhiều biến. Nếu bạn đã đọc hướng dẫn IF ELSE trong Scala thì bạn hẳn đã thấy mình tận dụng sức mạnh của toán tử quan hệ trong các điều kiện IF ELSE.

Các toán tử quan hệ này trả về một giá trị boolean, tức là True hoặc False.

Sau đây là các ký hiệu toán tử quan hệ mà bạn dùng để áp dụng lên các biến (Nguồn: Operators in Scala):

  • Bằng (==): Kiểm tra hai biến hoặc toán hạng có bằng nhau hay không. Nếu có, trả về true; nếu không, trả về false.

  • Khác (!=): Đối nghịch với toán tử bằng, hay có thể coi là phần bù boolean của toán tử bằng. Kiểm tra hai toán hạng có bằng nhau hay không. Nếu không, trả về true; nếu có, trả về false.

  • Lớn hơn (>): Kiểm tra toán hạng thứ nhất có lớn hơn toán hạng thứ hai hay không. Nếu có, trả về true; nếu không, trả về false.

  • Nhỏ hơn (<): Đối nghịch với toán tử lớn hơn vì nó kiểm tra toán hạng thứ nhất có nhỏ hơn toán hạng thứ hai hay không. Nếu đúng, trả về true; nếu không, trả về false.

  • Lớn hơn hoặc bằng (>=): Kiểm tra toán hạng thứ nhất có lớn hơn hoặc bằng toán hạng thứ hai hay không. Nếu có, trả về true; ngược lại trả về false.

  • Nhỏ hơn hoặc bằng (<=): Đối nghịch với toán tử lớn hơn hoặc bằng. Kiểm tra toán hạng thứ nhất có nhỏ hơn hoặc bằng toán hạng thứ hai hay không. Nếu đúng, trả về true; ngược lại trả về false.

Bây giờ hãy hiểu các toán tử quan hệ thông qua một đoạn mã.

code


Để chạy đoạn mã trên, bạn chỉ cần gõ scala relation_op.scala và bạn sẽ thấy kết quả như dưới đây.

output


Tiếp theo, bạn sẽ học về toán tử logic.

Toán tử logic

Chúng thường được dùng trong các câu lệnh điều kiện như IF ELSE hoặc trong vòng lặp while. Chúng kết hợp hai hay nhiều điều kiện hoặc tạo phần bù cho kết quả của điều kiện gốc được xét. (Nguồn: Operators in Scala)

  • AND logic: Trả về true khi cả hai điều kiện đều thỏa mãn. Ngược lại trả về false. Dùng từ “and” có tác dụng tương đương toán tử &&.

  • OR logic: Trả về true khi một (hoặc cả hai) điều kiện được thỏa mãn. Ngược lại trả về false. Dùng từ “or” có tác dụng tương đương toán tử ||.

  • NOT logic: Trả về true nếu điều kiện đang xét không được thỏa mãn. Ngược lại trả về false. Dùng từ “not” thay thế cho toán tử !.

operator
output

Toán tử số học (Toán học)

Đúng như tên gọi, toán tử số học dùng để thực hiện các phép toán giữa các toán hạng.

Sau đây là các toán tử số học thường dùng trong Scala (Nguồn: Operators in Scala):

  • Cộng: Cộng $(+)$ hai biến/toán hạng.

  • Trừ: Trừ $(-)$ hai toán hạng.

  • Nhân: Nhân $(\times)$ hai toán hạng.

  • Chia: Chia $(/)$ toán hạng thứ nhất cho toán hạng thứ hai.

  • Lũy thừa: Trả về giá trị lũy thừa của các toán hạng. Cụ thể là khi một toán hạng được nâng lên lũy thừa của toán hạng thứ hai $(x^y)$ hoặc $(x**y)$.

  • Chia lấy dư: Khi toán hạng thứ nhất chia cho toán hạng thứ hai, phần còn lại hay số dư được gọi là phần dư (modulo) (%).

Hãy viết nhanh một đoạn mã nhỏ và phân tích kết quả.

Trong ví dụ này, bạn sẽ dùng list thay vì chỉ định nghĩa biến. Khác với biến, một List có thể chứa n giá trị với nhiều kiểu dữ liệu; chúng biểu diễn danh sách liên kết trong Scala và là bất biến. Bạn sẽ thực hiện các phép toán số học trên hai list thay vì hai biến.

output

Toán tử gán

Để gán giá trị cho một biến, ta dùng toán tử gán. Để thực hiện điều này, toán hạng bên phải được coi là giá trị, còn toán hạng bên trái thường là biến nhận giá trị được gán. Giá trị có thể có các kiểu dữ liệu khác nhau như int, float, v.v. Kiểu dữ liệu của cả biến và giá trị phải giống nhau, nếu không trình biên dịch sẽ báo lỗi. (Nguồn: Operators in Scala)

  • Gán đơn: Dùng để gán một giá trị cho biến $(=)$.

  • Cộng và gán: Dùng để cộng toán hạng trái với toán hạng phải rồi gán kết quả cho biến bên trái $(+=)$.

  • Trừ và gán: Tương tự Cộng và gán. Dùng để trừ toán hạng trái với toán hạng phải rồi gán cho biến bên trái $(-=)$.

  • Nhân và gán: Dùng để nhân toán hạng trái với toán hạng phải rồi gán cho biến bên trái $(\times =)$.

  • Chia và gán: Dùng để chia toán hạng trái cho toán hạng phải rồi gán giá trị cho biến bên trái $(/=)$.

Tương tự, còn nhiều toán tử gán khác. Cuối cùng, hãy viết một đoạn mã để hiểu cách chúng hoạt động trong thực tế.

code
output

Kết luận

Chúc mừng bạn đã hoàn thành hướng dẫn về Scala này.

Nếu bạn đã đọc hai hướng dẫn trước đó, bạn hiện đã bao quát ba chủ đề khác nhau trong Scala. Một bài tập hữu ích là tận dụng kỹ năng từ cả ba để viết một chương trình Scala từ đầu. Điều này không chỉ giúp bạn tự tin hơn mà còn giúp bạn dễ dàng theo kịp các chủ đề nâng cao hơn trong Scala.

Tài liệu tham khảo:

Vui lòng đặt câu hỏi liên quan đến hướng dẫn này trong phần bình luận bên dưới.

Chủ đề
Scala

Khóa học Scala

Khóa học

Introduction to Scala

3 giờ
27.2K
Begin your journey with Scala, a popular language for scalable applications and data engineering infrastructure.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm