คำถามและคำตอบสัมภาษณ์สกาล่า 25 อันดับแรก (PDF)

ต่อไปนี้เป็นคำถามและคำตอบในการสัมภาษณ์ของ Scala สำหรับผู้สมัครใหม่และมีประสบการณ์เพื่อให้ได้งานในฝัน

 

คำถามและคำตอบสัมภาษณ์สกาล่าสำหรับนักศึกษาใหม่

1) อธิบายว่าสกาล่าคืออะไร?

Scala คือการเขียนโปรแกรมเชิงวัตถุและภาษาสคริปต์สำหรับแอปพลิเคชันซอฟต์แวร์ทั่วไปที่ออกแบบมาเพื่อแสดงโซลูชันในลักษณะที่กระชับ


2) 'ชุดสกาลา' คืออะไร และมีวิธีการใดบ้างที่ใช้แสดงชุดการดำเนินการ?

ชุด Scala คือชุดขององค์ประกอบแบบคู่กันที่มีประเภทเดียวกัน ชุด Scala ไม่มีองค์ประกอบที่ซ้ำกัน ชุดมีสองประเภท ได้แก่ ชุดที่เปลี่ยนแปลงได้และชุดที่เปลี่ยนแปลงไม่ได้

👉 ดาวน์โหลดไฟล์ PDF ฟรี: คำถามและคำตอบสัมภาษณ์สกาล่า >>


3) 'แผนที่สกาล่า' คืออะไร

แผนที่ Scala คือชุดของคู่คีย์หรือค่า ขึ้นอยู่กับคีย์ของค่าใดๆ ก็ตามที่สามารถดึงข้อมูลได้ ค่าไม่ซ้ำกัน แต่คีย์ไม่ซ้ำกันในแผนที่

คำถามสัมภาษณ์สกาล่า


4) ข้อดีของสกาล่าคืออะไร?

ข้อดีของ สกาล่า คือ:

  • Less รูปแบบการทำงานที่เสี่ยงต่อข้อผิดพลาด
  • การบำรุงรักษาและผลผลิตสูง
  • ความยืดหยุ่นสูง
  • ความสามารถในการทดสอบสูง
  • นำเสนอคุณสมบัติของการเขียนโปรแกรมพร้อมกัน

5) Scala ดีกว่าภาษาโปรแกรมอื่นๆ ในด้านใดบ้าง

  • อาร์เรย์ใช้ข้อมูลทั่วไปทั่วไป ในขณะที่ในภาษาอื่น ข้อมูลทั่วไปจะยึดติดไว้ภายหลังและแยกจากกันโดยสิ้นเชิง แต่มีพฤติกรรมทับซ้อนกับอาร์เรย์
  • Scala มี "val" ที่ไม่เปลี่ยนรูปเป็นคุณลักษณะภาษาชั้นหนึ่ง “val” ของสกาล่าจะคล้ายกับ Java ตัวแปรสุดท้าย เนื้อหาอาจมีการเปลี่ยนแปลง แต่การอ้างอิงด้านบนไม่เปลี่ยนรูป
  • Scala อนุญาตให้ใช้ 'if blocks' 'for-yield loops' และ 'code' ในวงเล็บเพื่อส่งคืนค่า วิธีนี้ดีกว่า และไม่จำเป็นต้องใช้ตัวดำเนินการแบบเทอร์นารีแยกต่างหาก
  • Singleton มีวัตถุ singleton มากกว่า C++/Java/ C# คลาสสิคคงที่ มันเป็นโซลูชั่นที่สะอาดกว่า
  • คอลเลกชันที่ไม่เปลี่ยนรูปแบบถาวรเป็นค่าเริ่มต้นและสร้างไว้ในไลบรารีมาตรฐาน
  • มันมีสิ่งอันดับดั้งเดิมและรหัสที่กระชับ
  • มันไม่มีรหัสแผ่นหม้อน้ำ

6) ตัวแปรสกาล่าคืออะไร?

ค่านิยมและ ตัวแปร เป็นรูปทรงสองแบบที่มาในสกาล่า ตัวแปรค่าเป็นค่าคงที่และไม่สามารถเปลี่ยนแปลงได้เมื่อกำหนดแล้ว ตัวแปรนี้ไม่เปลี่ยนรูป ในขณะที่ตัวแปรปกติไม่แน่นอน และคุณสามารถเปลี่ยนค่าได้

ตัวแปรทั้งสองประเภทคือ

var myVar : Int=0;

val myVal: Int=1;


7) พูดถึงความแตกต่างระหว่าง object และ class ?

คลาสคือคำจำกัดความของคำอธิบาย โดยกำหนดประเภทในแง่ของวิธีการและองค์ประกอบของประเภทอื่นๆ คลาสคือพิมพ์เขียวของวัตถุ ในขณะที่วัตถุนั้นเป็นซิงเกิลตันซึ่งเป็นอินสแตนซ์ของคลาสที่ไม่ซ้ำใคร คลาสที่ไม่ระบุตัวตนถูกสร้างขึ้นสำหรับทุกอ็อบเจ็กต์ในโค้ด โดยสืบทอดจากคลาสใดก็ตามที่คุณประกาศให้ออบเจ็กต์นำไปใช้


8) หางการเรียกซ้ำในสกาลาคืออะไร?

'การเรียกซ้ำ' เป็นฟังก์ชันที่เรียกตัวเองว่า ฟังก์ชันที่เรียกตัวเอง เช่น ฟังก์ชัน 'A' เรียกฟังก์ชัน 'B' ซึ่งเรียกฟังก์ชัน 'C' เป็นเทคนิคที่ใช้บ่อยในการเขียนโปรแกรมเชิงฟังก์ชัน เพื่อให้เรียกซ้ำส่วนท้าย การเรียกกลับไปยังฟังก์ชันจะต้องเป็นฟังก์ชันสุดท้ายที่จะดำเนินการ


9) 'ลักษณะสกาลา' ในสกาลาคืออะไร?

'ลักษณะ' ใช้เพื่อกำหนดประเภทวัตถุที่ระบุโดยลายเซ็นของวิธีการที่รองรับ Scala อนุญาตให้นำไปใช้ได้บางส่วน แต่คุณลักษณะอาจไม่มีค่าพารามิเตอร์ตัวสร้าง ลักษณะประกอบด้วยวิธีการและคำจำกัดความของฟิลด์ โดยการผสมให้เป็นคลาสจึงสามารถนำมาใช้ซ้ำได้


10) คุณสามารถใช้คุณลักษณะได้เมื่อใด?

ไม่มีกฎเฉพาะเจาะจงเมื่อคุณสามารถใช้คุณลักษณะได้ แต่มีแนวทางที่คุณสามารถพิจารณาได้

  • หากพฤติกรรมจะไม่ถูกนำมาใช้ซ้ำ ให้ทำให้เป็นคลาสที่เป็นรูปธรรม อย่างไรก็ตามมันไม่ใช่พฤติกรรมที่นำมาใช้ซ้ำได้
  • เพื่อที่จะสืบทอดต่อจากนั้นค่ะ Java รหัสสามารถใช้คลาสนามธรรมได้
  • หากประสิทธิภาพเป็นสิ่งสำคัญอันดับแรก ให้โน้มตัวไปที่การใช้คลาส
  • ทำให้เป็นลักษณะหากอาจนำมาใช้ซ้ำในหลายคลาสและไม่เกี่ยวข้องกัน ในส่วนต่างๆ ของลำดับชั้นของคลาส มีเพียงคุณลักษณะเท่านั้นที่สามารถผสมลงในส่วนต่างๆ ได้
  • คุณสามารถใช้คลาสนามธรรมได้ หากคุณต้องการแจกจ่ายในรูปแบบที่คอมไพล์แล้ว และคาดว่ากลุ่มภายนอกจะเขียนคลาสที่สืบทอดมาจากคลาสนั้น

คำถามสัมภาษณ์สกาล่าสำหรับผู้มีประสบการณ์

11) Case Class คืออะไร?

คลาสเคสจัดเตรียมกลไกการสลายตัวแบบเรียกซ้ำผ่านการจับคู่รูปแบบ ซึ่งเป็นคลาสปกติที่ส่งออกพารามิเตอร์คอนสตรัคเตอร์ พารามิเตอร์ตัวสร้างของคลาสเคสสามารถเข้าถึงได้โดยตรง และถือเป็นค่าพับลิก


12) การใช้สิ่งอันดับในสกาล่าคืออะไร?

Scala tuples รวมรายการจำนวนคงที่เข้าด้วยกันเพื่อให้สามารถส่งต่อได้โดยรวม สิ่งทูเปิลไม่เปลี่ยนรูปและสามารถเก็บวัตถุประเภทต่างๆ ได้ ไม่เหมือนอาร์เรย์หรือรายการ


13) ฟังก์ชั่น Curry ใน Scala คืออะไร?

Currying เป็นเทคนิคในการแปลงฟังก์ชันที่รับอาร์กิวเมนต์หลายตัวให้เป็นฟังก์ชันที่รับอาร์กิวเมนต์ตัวเดียว เทคนิคเดียวกันกับภาษาอย่าง Haskell และ LISP จำนวนมากได้รับการสนับสนุนโดย Scala ฟังก์ชั่นการแกงเป็นหนึ่งในสิ่งที่ใช้น้อยที่สุดและเข้าใจผิด


14) พารามิเตอร์โดยนัยใน Scala คืออะไร?

พารามิเตอร์โดยนัยคือวิธีที่อนุญาตให้ "พบพารามิเตอร์ของวิธีการ" คล้ายกับพารามิเตอร์เริ่มต้น แต่มีกลไกที่แตกต่างกันในการค้นหาค่า "ค่าเริ่มต้น" พารามิเตอร์โดยนัยคือพารามิเตอร์ของเมธอดหรือตัวสร้างที่ถูกทำเครื่องหมายว่าเป็นโดยนัย ซึ่งหมายความว่าหากไม่ได้กล่าวถึงค่าพารามิเตอร์ คอมไพเลอร์จะค้นหาค่า "โดยนัย" ที่กำหนดไว้ภายในขอบเขต


15) การปิดใน Scala คืออะไร?

การปิดคือฟังก์ชันที่ค่าส่งคืนขึ้นอยู่กับค่าของตัวแปรที่ประกาศไว้ภายนอกฟังก์ชัน


16) Monad ใน Scala คืออะไร?

monad คือวัตถุที่ล้อมรอบวัตถุอื่น คุณผ่านมินิโปรแกรมของ Monad เช่น ฟังก์ชัน เพื่อดำเนินการจัดการข้อมูลของวัตถุที่ซ่อนอยู่ แทนที่จะจัดการวัตถุโดยตรง Monad เลือกวิธีการใช้โปรแกรมกับวัตถุที่ซ่อนอยู่


17) ฟังก์ชั่นที่ไม่ระบุชื่อ Scala คืออะไร

ในซอร์สโค้ด ฟังก์ชันที่ไม่ระบุชื่อเรียกว่า 'ฟังก์ชันลิเทอรัล' และ ณ รันไทม์ ฟังก์ชันลิเทอรัลจะถูกสร้างอินสแตนซ์เป็นอ็อบเจ็กต์ที่เรียกว่าค่าฟังก์ชัน Scala มีไวยากรณ์ที่ค่อนข้างง่ายสำหรับการกำหนดฟังก์ชันที่ไม่ระบุชื่อ


18) อธิบายฟังก์ชั่น 'ลำดับที่สูงกว่าของ Scala' หรือไม่

Scala อนุญาตให้กำหนดฟังก์ชันลำดับสูง ฟังก์ชันเหล่านี้คือฟังก์ชันที่รับฟังก์ชันอื่นเป็นพารามิเตอร์ หรือผลลัพธ์เป็นฟังก์ชัน ในตัวอย่างต่อไปนี้ ฟังก์ชัน apply() รับฟังก์ชันอื่น 'f' และค่า 'v' และใช้ฟังก์ชันกับ v

ตัวอย่าง:

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() + "]"

เมื่อคอมไพล์และดำเนินการโค้ดด้านบนแล้ว จะได้ผลลัพธ์ดังต่อไปนี้

C:/>scalac Test.scala
C:/>scala Test
[10]
C:/>

19) ความแตกต่างระหว่าง var และ value คืออะไร?

ในสกาล่า คุณสามารถกำหนดตัวแปรโดยใช้คีย์เวิร์ด a, val หรือ var ความแตกต่างระหว่าง val และ var คือ var นั้นเหมือนกับการประกาศ java มาก แต่ val นั้นแตกต่างกันเล็กน้อย เราไม่สามารถเปลี่ยนการอ้างอิงให้ชี้ไปยังการอ้างอิงอื่นได้ เมื่อมีการประกาศตัวแปรโดยใช้ val ตัวแปรที่กำหนดโดยใช้คีย์เวิร์ด var นั้นไม่แน่นอนและสามารถเปลี่ยนแปลงได้กี่ครั้งก็ได้


20) ตัวเลือกคืออะไร บางและไม่มีเลยในสกาลา?

'ตัวเลือก' เป็นประเภททั่วไปของ Scala ที่สามารถเป็นค่าทั่วไป 'บางส่วน' หรือไม่ก็ได้ 'คิว' มักใช้เพื่อแสดงสิ่งดั้งเดิมที่อาจเป็นโมฆะ


21) ฉันจะผนวกเข้ากับรายการได้อย่างไร?

ในสกาล่าที่จะต่อท้ายรายการ ให้ใช้ “:+” 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) คุณจะจัดรูปแบบสตริงได้อย่างไร?

หากต้องการจัดรูปแบบสตริง ให้ใช้เมธอด .format () ในสกาลาที่คุณสามารถใช้ได้

Val formatted= “%s %i”.format (mystring.myInt)


23) เหตุใดสกาล่าจึงชอบความไม่เปลี่ยนรูป

Scala ชอบความไม่เปลี่ยนรูปในการออกแบบ และในหลายกรณีใช้เป็นค่าเริ่มต้น ความไม่เปลี่ยนรูปสามารถช่วยได้เมื่อต้องรับมือกับปัญหาความเท่าเทียมกันหรือโปรแกรมที่เกิดขึ้นพร้อมกัน


24) ตัวระบุสกาลามีสี่ประเภทอะไรบ้าง

ตัวระบุสี่ประเภทคือ

  • ตัวระบุตัวเลขอัลฟ่า
  • Operaตัวระบุทอร์
  • ตัวระบุแบบผสม
  • ตัวระบุตามตัวอักษร

25) ตัวอักษร Scala ประเภทต่าง ๆ มีอะไรบ้าง?

ตัวอักษรประเภทต่างๆ ในสกาล่าได้แก่

  • ตัวอักษรจำนวนเต็ม
  • ตัวอักษรจุดลอยตัว
  • ลิเทอรัลบูลีน
  • ตัวอักษรสัญลักษณ์
  • ตัวอักษรตามตัวอักษร
  • ตัวอักษรสตริง
  • สตริงหลายบรรทัด

คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)