คำถามและคำตอบสัมภาษณ์สกาล่า 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 ประเภทต่าง ๆ มีอะไรบ้าง?
ตัวอักษรประเภทต่างๆ ในสกาล่าได้แก่
- ตัวอักษรจำนวนเต็ม
- ตัวอักษรจุดลอยตัว
- ลิเทอรัลบูลีน
- ตัวอักษรสัญลักษณ์
- ตัวอักษรตามตัวอักษร
- ตัวอักษรสตริง
- สตริงหลายบรรทัด
คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)