25 câu hỏi và câu trả lời phỏng vấn Scala hàng đầu (PDF)
Dưới đây là các câu hỏi và câu trả lời phỏng vấn Scala dành cho những ứng viên mới ra trường cũng như có kinh nghiệm để có được công việc mơ ước của họ.
Câu hỏi và câu trả lời phỏng vấn Scala dành cho người mới
1) Giải thích Scala là gì?
Scala là một ngôn ngữ kịch bản và lập trình chức năng đối tượng dành cho các ứng dụng phần mềm nói chung được thiết kế để thể hiện các giải pháp một cách ngắn gọn.
2) 'Bộ Scala' là gì? Các phương thức thông qua đó các tập hợp thao tác được thể hiện là gì?
Scala set là tập hợp các phần tử theo cặp cùng loại. Scala set không chứa bất kỳ phần tử trùng lặp nào. Có hai loại tập hợp, có thể thay đổi và không thể thay đổi.
👉 Tải xuống bản PDF miễn phí: Câu hỏi và trả lời phỏng vấn Scala >>
3) 'Bản đồ Scala' là gì?
Bản đồ Scala là tập hợp các cặp khóa hoặc giá trị. Dựa trên khóa của nó, bất kỳ giá trị nào cũng có thể được truy xuất. Giá trị không phải là duy nhất nhưng khóa là duy nhất trong Bản đồ.
4) Ưu điểm của Scala là gì?
Những ưu điểm của Scala là:
- Less phong cách chức năng dễ bị lỗi
- Khả năng bảo trì và năng suất cao
- Khả năng mở rộng cao
- Khả năng kiểm tra cao
- Cung cấp các tính năng của lập trình đồng thời
5) Scala tốt hơn các ngôn ngữ lập trình khác ở điểm nào?
- Các mảng sử dụng các generic thông thường, trong khi ở ngôn ngữ khác, các generic được chốt lại như một suy nghĩ lại và hoàn toàn riêng biệt nhưng có các hành vi chồng chéo với các mảng.
- Scala có “val” bất biến như một tính năng ngôn ngữ hạng nhất. “val” của scala tương tự như Java các biến cuối cùng. Nội dung có thể thay đổi nhưng tham chiếu hàng đầu là không thay đổi.
- Scala cho phép 'khối if', 'vòng lặp for-yield' và 'code' trong dấu ngoặc nhọn để trả về một giá trị. Nó thích hợp hơn và loại bỏ sự cần thiết của một toán tử ba ngôi riêng biệt.
- Singleton có các đối tượng singleton hơn là C++/Java/ C# cổ điển tĩnh. Đó là một giải pháp sạch hơn
- Các bộ sưu tập bất biến liên tục là mặc định và được tích hợp vào thư viện chuẩn.
- Nó có bộ dữ liệu gốc và mã ngắn gọn
- Nó không có mã tấm nồi hơi
6) Biến Scala là gì?
Giá trị và biến là hai hình dạng có trong Scala. Biến giá trị là hằng số và không thể thay đổi sau khi được gán. Mặt khác, nó là bất biến, trong khi một biến thông thường lại có thể thay đổi và bạn có thể thay đổi giá trị.
Hai loại biến này là
var myVar : Int=0;
val myVal: Int=1;
7) Hãy nêu sự khác biệt giữa đối tượng và lớp?
Một lớp là một định nghĩa cho một mô tả. Nó định nghĩa một loại về phương pháp và thành phần của các loại khác. Một lớp là một bản thiết kế của đối tượng. Trong khi, một đối tượng là một singleton, một thể hiện của một lớp duy nhất. Một lớp ẩn danh được tạo cho mọi đối tượng trong mã, nó kế thừa từ bất kỳ lớp nào bạn đã khai báo đối tượng để triển khai.
8) Đuôi đệ quy trong scala là gì?
'Đệ quy' là một hàm gọi chính nó. Ví dụ, một hàm tự gọi chính nó, hàm 'A' gọi hàm 'B', hàm này gọi hàm 'C'. Nó là một kỹ thuật được sử dụng thường xuyên trong lập trình chức năng. Để đệ quy đuôi, lệnh gọi lại hàm phải là hàm cuối cùng được thực hiện.
9) 'Đặc điểm scala' trong scala là gì?
'Đặc điểm' được sử dụng để xác định loại đối tượng được chỉ định theo chữ ký của các phương thức được hỗ trợ. Scala cho phép triển khai một phần nhưng các đặc điểm có thể không có tham số hàm tạo. Một đặc điểm bao gồm phương thức và định nghĩa trường, bằng cách trộn chúng vào các lớp, nó có thể được sử dụng lại.
10) Khi nào bạn có thể sử dụng đặc điểm?
Không có quy tắc cụ thể nào khi bạn có thể sử dụng các đặc điểm, nhưng có một nguyên tắc mà bạn có thể xem xét.
- Nếu hành vi đó không được sử dụng lại thì hãy biến nó thành một lớp cụ thể. Dù sao nó không phải là một hành vi có thể tái sử dụng.
- Để kế thừa từ nó trong Java mã, một lớp trừu tượng có thể được sử dụng.
- Nếu hiệu quả là ưu tiên hàng đầu thì hãy nghiêng về việc sử dụng một lớp
- Biến nó thành một đặc điểm nếu nó có thể được sử dụng lại trong nhiều lớp không liên quan. Trong các phần khác nhau của hệ thống phân cấp lớp, chỉ những đặc điểm mới có thể được trộn lẫn vào các phần khác nhau.
- Bạn có thể sử dụng lớp trừu tượng nếu bạn muốn phân phối nó ở dạng được biên dịch và mong muốn các nhóm bên ngoài viết các lớp kế thừa từ nó.
Câu hỏi phỏng vấn Scala dành cho người có kinh nghiệm
11) Lớp trường hợp là gì?
Các lớp tình huống cung cấp cơ chế phân rã đệ quy thông qua khớp mẫu, đây là một lớp thông thường xuất tham số hàm tạo của chúng. Các tham số hàm tạo của các lớp trường hợp có thể được truy cập trực tiếp và được coi là giá trị công khai.
12) Việc sử dụng bộ dữ liệu trong scala là gì?
Các bộ dữ liệu Scala kết hợp một số mục cố định lại với nhau để chúng có thể được chuyển toàn bộ. Một bộ dữ liệu là bất biến và có thể chứa các đối tượng thuộc các loại khác nhau, không giống như mảng hoặc danh sách.
13) Hàm Currying trong Scala là gì?
Currying là kỹ thuật chuyển đổi một hàm nhận nhiều đối số thành một hàm nhận một đối số duy nhất. Nhiều kỹ thuật tương tự như ngôn ngữ như Haskell và LISP được Scala hỗ trợ. Cà ri chức năng là một trong những chức năng ít được sử dụng và bị hiểu lầm nhất.
14) Tham số ngầm trong Scala là gì?
Tham số ngầm định là cách cho phép “tìm thấy” các tham số của một phương thức. Nó tương tự như các tham số mặc định, nhưng nó có cơ chế khác để tìm giá trị “mặc định”. Tham số ẩn là tham số cho phương thức hoặc hàm tạo được đánh dấu là ẩn. Điều này có nghĩa là nếu một giá trị tham số không được đề cập thì trình biên dịch sẽ tìm kiếm một giá trị “ẩn” được xác định trong một phạm vi.
15) Closure trong Scala là gì?
Bao đóng là một hàm có giá trị trả về phụ thuộc vào giá trị của các biến được khai báo bên ngoài hàm.
16) Monad trong Scala là gì?
Một đơn nguyên là một đối tượng bao bọc một đối tượng khác. Bạn chuyển các chương trình nhỏ Monad, tức là các hàm, để thực hiện thao tác dữ liệu của đối tượng cơ bản, thay vì thao tác trực tiếp với đối tượng. Monad chọn cách áp dụng chương trình cho đối tượng cơ bản.
17) Hàm ẩn danh Scala là gì?
Trong mã nguồn, các hàm ẩn danh được gọi là 'chữ hàm' và trong thời gian chạy, nghĩa đen của hàm được khởi tạo thành các đối tượng được gọi là giá trị hàm. Scala cung cấp một cú pháp tương đối dễ dàng để xác định các hàm ẩn danh.
18) Giải thích hàm 'Scala bậc cao hơn'?
Scala cho phép định nghĩa các hàm bậc cao hơn. Đây là các hàm lấy các hàm khác làm tham số hoặc có kết quả là một hàm. Trong ví dụ sau, hàm apply() lấy một hàm khác 'f' và một giá trị 'v' và áp dụng hàm cho v.
Ví dụ:
object Test { def main(args: Array[String]) { println( apply( layout, 10) ) } def apply(f: Int => String, v: Int) = f(v) def layout[A](x: A) = "[" + x.toString() + "]"
Khi đoạn mã trên được biên dịch và thực thi, nó sẽ tạo ra kết quả sau.
C:/>scalac Test.scala C:/>scala Test [10] C:/>
19) Sự khác biệt giữa var và value là gì?
Trong scala, bạn có thể xác định một biến bằng từ khóa a, val hoặc var. Sự khác biệt giữa val và var là, var rất giống với khai báo java, nhưng val hơi khác một chút. Chúng ta không thể thay đổi tham chiếu để trỏ đến một tham chiếu khác khi biến được khai báo bằng val. Biến được xác định bằng từ khóa var có thể thay đổi và có thể thay đổi bất kỳ số lần nào.
20) Tùy chọn, một số và không có trong scala là gì?
'Tùy chọn' là loại chung của Scala có thể là giá trị chung 'một số' hoặc không có giá trị nào. 'Hàng đợi' thường sử dụng nó để biểu diễn các giá trị nguyên thủy có thể rỗng.
21) Làm cách nào để thêm vào danh sách?
Trong scala để nối vào danh sách, hãy sử dụng “:+” single value
var myList = List.empty[String] myList :+= "a" myList :+= "b" myList :+= "c" use++ for appending a list var myList = List.empty[String] myList ++= List("a", "b", "c")
22) Làm thế nào bạn có thể định dạng một chuỗi?
Để định dạng một chuỗi, hãy sử dụng phương thức .format(), trong scala bạn có thể sử dụng
Val formatted= “%s %i”.format (mystring.myInt)
23) Tại sao scala thích tính bất biến?
Scala ưa thích tính bất biến trong thiết kế và trong nhiều trường hợp sử dụng nó làm mặc định. Tính bất biến có thể hữu ích khi giải quyết các vấn đề bình đẳng hoặc các chương trình đồng thời.
24) Bốn loại định danh scala là gì?
Bốn loại định danh là
- Mã định danh số alpha
- Operađịnh danh tor
- Số nhận dạng hỗn hợp
- Mã định danh theo nghĩa đen
25) Các loại chữ Scala khác nhau là gì?
Các loại chữ khác nhau trong scala là
- Chữ số nguyên
- Chữ dấu phẩy động
- Ký tự Boolean
- Ký hiệu chữ
- Ký tự chữ
- Chuỗi ký tự
- Chuỗi nhiều dòng
Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn