คำถามและคำตอบสัมภาษณ์ Erlang 22 อันดับสูงสุด (2025)

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


1) เออร์แลงคืออะไร?

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

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


2) อธิบายว่า OTP (Open Telecom Platform) คืออะไร?

OTP เป็นแพลตฟอร์มโอเพ่นซอร์ส และเป็นชุดไลบรารีขนาดใหญ่สำหรับ Erlang ที่จะทำทั้งหมดตั้งแต่การคอมไพล์ ASN.1 ไปจนถึงการจัดหาเซิร์ฟเวอร์ WWW


3) คุณสมบัติที่สำคัญของ Erlang คืออะไร?

คุณสมบัติที่สำคัญของ Erlang ก็คือมันมี

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

4) ตั้งชื่อประเภทข้อมูลที่ erlang ให้มา?

Erlang มีประเภทข้อมูลสองประเภท

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

5) คำสั่งให้ตัดการเชื่อมต่อโหนดใน Erlang คืออะไร?

โดยการเรียก erlang: Disconnect_node (Node) จะบังคับให้ตัดการเชื่อมต่อของโหนด

คำถามสัมภาษณ์เออร์แลง
คำถามสัมภาษณ์เออร์แลง

6) อธิบายว่าโมดูลใน Erlang คืออะไร?

Erlang ช่วยให้สามารถจัดระเบียบโค้ดเป็นโมดูลได้ โมดูลประกอบด้วยฟังก์ชันต่างๆ แนะนำขอบเขตการทำงานในท้องถิ่น (สาธารณะและส่วนตัว)


7) พูดถึงวิธีการจัดเก็บโมดูลใน Erlang?

ชื่อโมดูลจะถูกเก็บไว้ในไฟล์ชื่อ .erl ชื่อฐานไฟล์และชื่อโมดูลจะต้องเหมือนกัน


8) อธิบายว่า Bit strings ใน Erlang คืออะไร?

ในการจัดเก็บพื้นที่หน่วยความจำที่ไม่ได้พิมพ์ จะใช้สตริงบิตและแสดงโดยใช้ไวยากรณ์บิต


9) อธิบายว่า Pattern Matching คืออะไร?

การจับคู่รูปแบบเกิดขึ้นเมื่อประเมินการเรียกใช้ฟังก์ชัน ด้วยกลไกการจับคู่รูปแบบ ตัวแปรจะถูกผูกไว้กับค่า


10) อธิบายว่าประเภทข้อมูล PID คืออะไร?

PID หมายถึงตัวระบุกระบวนการและเป็นประเภทข้อมูลที่ใช้สำหรับตัวระบุกระบวนการเฉพาะซึ่งถูกกำหนดให้กับทุกกระบวนการ


11) หากต้องการรวมไฟล์ใน Erlang จะใช้คำสั่งอะไร?

คุณสามารถรวมไฟล์ไว้ใน Erlang ได้สองวิธี

  • รวม (ไฟล์)
  • include_lib (ไฟล์)
แอร์ลัง
แอร์ลัง

12) วิธีจัดการข้อผิดพลาดรันไทม์ใน Erlang?

เป็นไปได้ที่จะป้องกันข้อผิดพลาดรันไทม์และข้อยกเว้นอื่นๆ ไม่ให้กระบวนการยุติลงโดยใช้ Catch หรือ Try Catch Expr ส่งกลับค่าของนิพจน์ เว้นแต่จะมีข้อยกเว้นเกิดขึ้นระหว่างการประเมิน Try Exprs เป็นการปรับปรุง catch ด้วยความสามารถในการระบุคลาสข้อยกเว้นและเลือกที่จะจัดการคลาสที่ต้องการ


13) ใน Erlang “กระบวนการ” ถูกสร้างขึ้นอย่างไร?

กระบวนการนี้สร้างขึ้นโดยการเรียกการวางไข่ และการวางไข่จะสร้างกระบวนการใหม่และส่งคืน pid

  • วางไข่ (โมดูล, ชื่อ, Args ) -> pid ()

14) กำหนดลำดับการป้องกัน และนิพจน์การป้องกันที่ถูกต้องคืออะไร?

ส่วนคำสั่งฟังก์ชัน Erlang สามารถป้องกันได้ด้วยตัวป้องกัน ประโยคสามารถป้องกันได้ก็ต่อเมื่อผู้คุมถือ เป็นลำดับของตัวป้องกัน โดยคั่นด้วยเครื่องหมายอัฒภาค (;) และตัวป้องกันคือลำดับของนิพจน์ตัวป้องกันที่คั่นด้วยเครื่องหมายจุลภาค (,) ลำดับการป้องกันจะเป็นจริงหากอย่างน้อยหนึ่งในผู้พิทักษ์เป็นจริง


15) ให้รายการสำนวนยามที่ถูกต้อง?

สำนวนยามที่ถูกต้องคือ

  • อะตอม จริงด้วย
  • ค่าคงที่อื่นๆ
  • โทรไปยัง BIF ที่ระบุ
  • การเปรียบเทียบระยะ
  • นิพจน์ทางคณิตศาสตร์
  • นิพจน์บูลีน
  • นิพจน์การลัดวงจร

16) อธิบายวิธีการส่งและรับข้อความใน Erlang?

สำหรับการส่งข้อความ Erlang จะใช้เครื่องหมายอัศเจรีย์ (!) เป็นตัวดำเนินการในการส่งข้อความ ไวยากรณ์ที่ใช้ในการส่งข้อความคือ Pid ! ข้อความ. สำหรับการรับข้อความ Erlang ใช้ Pattern Matching เพื่อส่งข้อความจากคำสั่งรับคิวข้อความ


17) อธิบายว่า Spawn/ 1l3 และ Spawn_link 1l3 คืออะไร

วางไข่/ 1l3: สร้างกระบวนการใหม่และส่งคืน pid ในคิวตัวกำหนดเวลาของระบบ กระบวนการใหม่จะถูกวางไว้เพื่อให้ทำงานในภายหลัง Spawn_link/1l3: มีฟังก์ชันการทำงานเหมือนกับ spawn/1l3 แต่มีการเพิ่มลิงก์ที่ถูกสร้างขึ้นแบบอะตอมมิกระหว่างกระบวนการที่สร้างใหม่และผู้เรียก


18) พูดถึงไวยากรณ์ในการเขียน Macros ใน Erlang คืออะไร?

ไวยากรณ์ที่ใช้เขียนมาโครใน Erlang คือ

 define ( Const, Replacement ).
define ( Fun ( Var1 , Var2, …., Var ) , Replacement )

19) แสดงรายการ Macros ที่กำหนดไว้ล่วงหน้าใน Erlang?

แมโครที่กำหนดไว้ล่วงหน้าใน Erlang คือ

  • โมดูล: มันจะส่งกลับชื่อของโมดูลปัจจุบัน
  • โมดูล_สตริง: ส่งคืนชื่อของโมดูลปัจจุบันเป็นสตริง
  • ไฟล์: มันจะส่งคืนชื่อไฟล์ปัจจุบัน
  • เส้น: ส่งคืนหมายเลขบรรทัดปัจจุบัน
  • เครื่อง: มันจะส่งคืนชื่อเครื่องปัจจุบัน 'BEAM'

20) อธิบายว่าเรคคอร์ดคืออะไร และคุณจะกำหนดเรคคอร์ดใน Erlang ได้อย่างไร?

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

record (Name, { Field1 [= Value] , … FieldN [= ValueN] } )

21) พูดถึงคำสั่งที่ใช้ในการเข้าถึงเขตข้อมูลบันทึกใน Erlang คืออะไร?

Expr#Name.Field คำสั่งนี้จะส่งคืนค่าของฟิลด์ที่กล่าวถึงในขณะที่ใช้การส่งคืนตำแหน่งของฟิลด์ที่ระบุ #Name.Field ถูกใช้


22) อธิบายว่า epmd คืออะไร?

epmd เป็นเนมเซิร์ฟเวอร์ขนาดเล็กซึ่งใช้โดยโปรแกรม Erlang เมื่อสร้างการสื่อสาร Erlang แบบกระจาย นอกจากนี้ยังเรียกอีกอย่างว่า Erlang Port Mapper Daemon มีหน้าที่รับผิดชอบในการแมปชื่อโหนดสัญลักษณ์กับที่อยู่เครื่องที่ใช้

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

Share

เขียนความเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมาย *