25 câu hỏi phỏng vấn Scala hàng đầu & Câu trả lời

Anonim

tải PDF

1) Giải thích Scala là gì?

Scala là một ngôn ngữ lập trình và lập trình chức năng đối tượng cho các ứng dụng phần mềm nói chung được thiết kế để diễn đạt các giải pháp một cách ngắn gọn.

2) 'Tập hợp Scala' là gì? Các phương thức thông qua các tập hợp hoạt động được thể hiện là gì?

Tập hợp Scala là tập hợp các phần tử ghép đôi cùng kiểu. Tập hợp Scala 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à bất biến.

3) 'Bản đồ Scala' là gì?

Bản đồ Scala là một 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. Các giá trị không phải là duy nhất nhưng các khóa là duy nhất trong Bản đồ.

4) Ưu điểm của Scala là gì?

  • Phong cách chức năng ít bị lỗi hơn
  • 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 ngôn ngữ lập trình khác ở những đ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, generic được bổ sung như một phương pháp suy nghĩ sau 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 làm đặc điểm ngôn ngữ hạng nhất. “Val” của scala tương tự như các biến cuối cùng của Java. Nội dung có thể thay đổi nhưng tham chiếu hàng đầu là bất biến.
  • Scala cho phép 'nếu khối', 'vòng lặp cho lợi nhuận' và 'mã' 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ử bậc ba riêng biệt.
  • Singleton có các đối tượng singleton chứ không phải là C ++ / Java / C # tĩnh cổ điển. Đó là một giải pháp sạch hơn
  • Các bộ sưu tập không thay đổi liên tục là bộ sưu tập mặc định và được xây dựng trong thư viện chuẩn.
  • Nó có các bộ giá trị gốc và một mã ngắn gọn
  • Nó không có mã tấm lò hơi

6) Các biến Scala là gì?

Giá trị và biến là hai hình dạng có trong Scala. Một biến giá trị là không đổi và không thể thay đổi sau khi được gán. Nó là bất biến, trong khi một biến thông thường, mặt khác, có thể thay đổi và bạn có thể thay đổi giá trị.

Hai loại biến là

var myVar: Int = 0;

val myVal: Int = 1;

7) Đề cập đến sự khác biệt giữa một đối tượng và một lớp?

Một lớp là một định nghĩa cho một mô tả. Nó xác định 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 là 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ó. Một hàm gọi chính nó, ví dụ, một 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 hàm. Đối với đệ 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 các loại đối tượng được chỉ định bởi chữ ký của các phương thức được hỗ trợ. Scala cho phép thực hiện một phần nhưng các đặc điểm có thể không có tham số khởi tạo. Một đặc điểm bao gồm phương pháp 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ác tính trạng?

Không có quy tắc cụ thể khi bạn có thể sử dụng các đặc điểm, nhưng có một hướng dẫn mà bạn có thể xem xét.

  • Nếu hành vi sẽ không được sử dụng lại, thì hãy biến nó thành một lớp cụ thể. Nhưng 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 mã Java, một lớp trừu tượng có thể được sử dụng.
  • Nếu hiệu quả là ưu tiên thì hãy dựa vào việc sử dụng một lớp
  • Hãy 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 và không liên quan. Ở các phần khác nhau của hệ thống phân cấp, chỉ các tính trạng 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 đã biên dịch và mong đợi các nhóm bên ngoài viết các lớp kế thừa từ nó.

11) Các lớp tình huống là gì?

Các lớp trường hợp cung cấp một cơ chế phân rã đệ quy thông qua đối sánh mẫu, nó là một lớp thông thường xuất tham số phương thức khởi tạo của chúng. Các tham số khởi 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 như các giá trị công khai.

12) Việc sử dụng các bộ giá trị trong scala là gì?

Các bộ giá trị Scala kết hợp một số mục cố định với nhau để chúng có thể được chuyển đi khắp nơi. Một tuple là bất biến và có thể chứa các đối tượng với nhiều kiểu khác nhau, không giống như một mảng hoặc danh sách.

13) Chức năng currying trong Scala là gì?

Currying là kỹ thuật biế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ợ. Chức năng cà ri là một trong những cách ít được sử dụng nhất và bị hiểu nhầm.

14) Các tham số ngầm định trong Scala là gì?

Tham số ngầm định là cách cho phép các tham số của một phương thức được “tìm thấy”. Nó tương tự như các tham số mặc định, nhưng nó có một cơ chế khác để tìm giá trị "mặc định". Tham số ngầm định là một tham số cho phương thức hoặc hàm tạo được đánh dấu là không tường minh. Đ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ị “ngầm định” được xác định trong một phạm vi.

15) Đóng cửa 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ì?

Đơ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 bên dưới, 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 bên dưới.

17) Chức năng ẩn danh Scala là gì?

Trong mã nguồn, các hàm ẩn danh được gọi là 'các ký tự hàm' và tại thời điểm chạy, các ký tự hàm được khởi tạo thành các đối tượng được gọi là các 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 các hàm 'bậc cao Scala'?

Scala cho phép định nghĩa các hàm bậc cao hơn. Đây là những hàm nhận các hàm khác làm tham số hoặc kết quả của nó là một hàm. Trong ví dụ sau, hàm apply () nhận một hàm khác 'f' và một giá trị 'v' và áp dụng hàm cho v.

Thí 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ó tạo ra kết quả như sau.
C:/>scalac Test.scalaC:/>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 cách sử dụng các từ khóa a, val hoặc var. Sự khác biệt giữa val và var là, var giống như khai báo java, nhưng val thì khác một chút. Chúng ta không thể thay đổi tham chiếu để trỏ tới tham chiếu khác, một khi biến được khai báo bằng cách sử dụng val. Biến được xác định bằng cách sử dụng từ khóa var có thể thay đổi và có thể được thay đổi bất kỳ số lần nào.

20) Quyền chọn, một số và không trong scala là gì?

'Option' là một loại chung Scala có thể là giá trị chung 'một số' hoặc không. 'Hàng đợi' thường sử dụng nó để đại diện cho các nguyên thủy có thể là rỗng.

21) Làm cách nào để tôi thêm vào danh sách?

Trong scala để thêm 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 listvar 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 thích tính bất biến trong thiết kế và trong nhiều trường hợp, nó sử dụng nó làm mặc định. Tính bất biến có thể giúp í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 số nhận dạng là

  • Định danh số alpha
  • Số nhận dạng nhà điều hành
  • Số nhận dạng hỗn hợp
  • Số nhận dạng 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
  • Ký tự dấu chấm động
  • Ký tự Boolean
  • Ký tự ký hiệu
  • Ký tự ký tự
  • Chuỗi ký tự
  • Chuỗi nhiều dòng