Scala ( ) là một ngôn ngữ lập trình đa mẫu hình, được thiết kế để tích hợp các tính năng của lập trình hướng đối tượng với lập trình hàm Nó cũng có thể chạy trên nền tảng.NET, nhưng chưa ổn định.
Scala có kiểu biên dịch giống như Java và C#, nên Scala code có thể đọc được thư viện Java (hoặc thư viện.NET).
Scala đặt dưới giấy phép BSD.
Lịch sử phát triển
Scala bắt đầu được thiết kế từ năm 2001 tại École Polytechnique Fédérale de Lausanne (EPFL) bởi Martin Odersky, tiếp tục phát triển khi làm việc tại Funnel, một ngôn ngữ lập trình tích hợp các ý tưởng về lập trình hàm và mạng Petri. Sau đó, Odersky làm việc với Generic Java và javac, trình biên dịch Sun's Java. Phiên bản 2.0 ra mắt tháng 3 năm 2006. Thêm vào đó Foursquare sử dụng Scala và Lift.
Ví dụ kinh điển"Hello world"
Đây là chương trình Hello world viết bằng Scala:
object HelloWorld extends Application {
println("Hello, world!")
}
hoặc
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
Chương trình lưu dưới dạng HelloWorld.scala, biên dịch bằng cú pháp:
scalac HelloWorld.scala
Chạy chương trình:
scala -classpath. HelloWorld
Hoặc chạy trực tiếp từ mã:
scala HelloWorld.scala
Kiểm thử
Có nhiều cách kiểm tra chương trình viết bằng Scala:
Thư viện SUnit bị gở bỏ từ phiên bản 2.8.0.
👁️
1 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**Scala** ( ) là một ngôn ngữ lập trình đa mẫu hình, được thiết kế để tích hợp các tính năng của lập trình hướng đối tượng với lập trình hàm Nó cũng có thể
nhỏ|Cbmain Trong khoa học máy tính, một **ngôn ngữ lập trình bậc cao** (tiếng Anh: _high-level programming language_) là một ngôn ngữ lập trình có sự trừu tượng hóa mạnh mẽ khỏi các chi tiết
**Kotlin** là một ngôn ngữ lập trình kiểu tĩnh chạy trên máy ảo Java (JVM) và có thể được biên dịch sang mã nguồn Java hay sử dụng cơ sở hạ tầng trình biên dịch
Đây là danh sách các ngôn ngữ lập trình đáng chú ý, được nhóm theo loại. Vì không có sơ đồ phân loại bao quát cho các ngôn ngữ lập trình, nên trong nhiều trường
Trong phần mềm máy tính, **lập trình đa năng** (tiếng Anh: **general-purpose programming language**) là ngôn ngữ lập trình được thiết kế để sử dụng cho việc Các ngôn ngữ lập trình ban đầu được
Mục đích của **danh sách các ngôn ngữ lập trình** này là bao gồm tất cả các ngôn ngữ lập trình hiện tại đáng chú ý, được sử dụng hiện tại và những ngôn ngữ
**Lập trình hướng đối tượng** () là một mẫu hình lập trình dựa trên khái niệm "đối tượng", mà trong đó, đối tượng chứa đựng các dữ liệu trong các trường, thường được gọi là
Trong ngành khoa học máy tính, **lập trình hàm** (**lập trình chức năng**) là một mô hình lập trình xem việc tính toán là sự đánh giá các hàm toán học và tránh sử dụng
**Đặc tính** (tiếng Anh: _property_), trong một số ngôn ngữ lập trình hướng đối tượng, là một loại đặc biệt của thành viên lớp, trung gian chức năng giữa một trường (hay thành viên dữ
**Lập trình tổng quát** (tiếng Anh: _generic programming_) là một dạng lập trình máy tính mà trong đó thuật toán được viết theo cách kiểu _được-xác-định-sau_ và sau đó được _khởi tạo_ (_instantiate_) nếu cần
**N****gôn ngữ toán học** là hệ thống ngôn ngữ được sử dụng bởi các nhà toán học để truyền đạt ý tưởng toán học với nhau. Ngôn ngữ này bao gồm một nền tảng từ
**Play Framework** là một web framework mã nguồn mở được dùng để tạo các ứng dụng web. Play Framework được viết bằng Scala và Java theo mô hình kiến trúc (_architectural pattern_) model–view–controller (MVC). Play
**Heroku** là một nền tảng đám mây như một dịch vụ (PaaS) hỗ trợ một vài ngôn ngữ lập trình. Là một trong những nền tảng đám mây đầu tiên, Heroku đã được phát triển
Trong lập trình máy tính, **mô thức async/await** là một tính năng cú pháp của nhiều ngôn ngữ lập trình, cho phép cấu trúc nên hàm 'bất đồng bộ, non-blocking' theo lối y hệt ở
**Martin Odersky** (sinh ngày 5 tháng 9 năm 1958) là nhà khoa học máy tính người Đức và giáo sư phương pháp lập trình tại École Polytechnique Fédérale de Lausanne, Thụy Sỹ. Ông tập trung
**Apache Kafka** là một nền tảng theo kiến trúc phân tán cho phép lưu trữ sự kiện và xử lý dữ liệu luồng (streaming) mã nguồn mở được phát triển bởi Apache Software Foundation được
**IntelliJ IDEA** là một IDE Java để phát triển các phần mềm máy tính. Ứng dụng được phát triển bởi JetBrains (trước đây gọi là IntelliJ), với giấy phép Apache 2 cho phiên bản cộng
Môi trường phát triển tích hợp Eclipse phiên bản 3.1.2 trên nền Windows XP. **Eclipse** là một môi trường phát triển tích hợp dùng cho lập trình máy tính., Nó chứa một không gian làm
Trong khoa học máy tính, **thuật toán tất định** là một thuật toán có đầu ra (output) hoàn toàn có thể dự đoán được (xác định được) qua đầu vào (input), và máy chạy thuật
**Aristoteles** ( , _Aristotélēs_; chính tả tiếng Anh: **Aristotle**, phiên âm tiếng Việt: **A-rit-xtốt**; 384 – 322 TCN) là một nhà triết học và bác học người Hy Lạp cổ điển. Ông là một trong
**Trường điều kiện ngẫu nhiên (CRFs)** là một dạng của Mô hình xác suất thường được áp dụng cho Dự đoán cấu trúc trong Nhận diện mẫu và Học máy. Một mô hình phân lớp
**Suy luận kiểu** (tiếng Anh: _type inference_) dùng để chỉ việc tự động phát hiện kiểu dữ liệu của một biểu thức trong ngôn ngữ lập trình. Nó là một tính năng hiện diện trong
Trong logic toán học và khoa học máy tính, **phép tính lambda** (tiếng Anh:lambda calculus) hay còn được viết là **λ-calculus**, là một hệ thống hình thức dùng trong việc định nghĩa hàm số, ứng
**Redis** (/ˈrɛdɪs/; từ viết tắt của **Remote Dictionary Server**) là một cơ sở dữ liệu phân tán trong bộ nhớ, được sử dụng như một cơ sở dữ liệu đệm lưu dữ liệu dạng cặp
Hiện nay có nhiều công cụ Big Data Analytics được sử dụng phổ biến trong các tổ chức và doanh nghiệp, bao gồm: - Hadoop: Hadoop là một framework mã nguồn mở cho phép lưu
**Phanxicô Xaviê Nguyễn Văn Thuận** (17 tháng 4 năm 1928 – 16 tháng 9 năm 2002) là một hồng y người Việt Nam thuộc Giáo hội Công giáo Rôma. Ông từng đảm trách cương vị
**Pietro Antonio Stefano Mascagni** (1863-1945) là nhà soạn nhạc, nhạc trưởng người Ý. Ông là một trong những đại biểu xuất sắc của trường phái opera Ý hiện thực cuối thế kỷ XIX. ## Cuộc
nhỏ|[[Đấu trường La Mã ở Rome, được xây vào thế kỷ thứ 1 sau Công nguyên]] **Ý** được thống nhất năm 1861, có những đóng góp quan trong cho sự phát triển văn hóa, xã
**Maximiliano I của México** (tiếng Đức: _Ferdinand Maximilian Joseph Maria von Habsburg-Lothringen_; tiếng Tây Ban Nha: _Fernando Maximiliano José María de Habsburgo-Lorena_; 6 tháng 7 năm 1832 - 19 tháng 6 năm 1867) là một
**Milano** (phát âm tiếng Ý: , phương ngữ Milano của tiếng Lombardia: _Milan_, ) là một thành phố chính của miền bắc Ý, một trong những đô thị phát triển nhất châu Âu, và là
nhỏ|Tự hoạ như cái đầu của [[Judith and Holofernes|Holofernes từ trần Nhà nguyện Sistine]] **Michelangelo di Lodovico Buonarroti Simoni** Hai cuốn tiểu sử đã được xuất bản trong khi ông đang sống; một trong số
**Alfonso Maria de' Liguori** (tên Việt phiên âm: **An Phong** hoặc **Anphonsô**, 1696-1787) là người sáng lập ra Dòng Chúa Cứu Thế, Giám mục Sant'Agata de' Goti, là một trong những nhà thần học luân
**Durante degli Alighieri** (), thường được biết với tên gọi ngắn gọn **Dante Alighieri** hay, đơn giản hơn, **Dante** (; , ; – 1321), là một nhà thơ lớn người Ý vào giai đoạn Hậu
**_Suy ngẫm về Triết học tiên khởi_**, với tựa đề con **_Chứng minh sự tồn tại của Chúa trời và sự khác biệt thực sự giữa tâm và thân_**, (tên Latinh: _Meditationes de prima philosophia,
**Giải vô địch bóng đá thế giới 2022** (hay **Cúp bóng đá thế giới 2022**, , ) là lần thứ 22 của Giải vô địch bóng đá thế giới, diễn ra tại Qatar từ ngày
**_Cây sáo thần_** (, ) là một vở nhạc kịch có kí hiệu K. 620 gồm hai chương của soạn giả Wolfgang Amadeus Mozart, được công diễn lần đầu tại nhà hát Theater auf der
Việc trao Giải vô địch bóng đá thế giới 2022 cho Qatar đã tạo ra một số lo ngại và tranh cãi liên quan đến cả sự phù hợp của Qatar với tư cách là