Go

โครงสร้างข้อมูล Go

Arrays, slices, maps, structs, pointers, make vs new, ค่า nil

20 คำถามสัมภาษณ์·
Junior
1

slice ใน Go คืออะไร?

คำตอบ

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

2

ความแตกต่างหลักระหว่าง array กับ slice ใน Go คืออะไร?

คำตอบ

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

3

จะสร้าง slice ว่างใน Go ได้อย่างไร?

คำตอบ

ไวยากรณ์ literal ที่ใช้วงเล็บเหลี่ยมว่างตามด้วยวงเล็บปีกกาว่างเป็นวิธีที่เป็นสำนวนในการสร้าง slice ว่างที่ถูกกำหนดค่าเริ่มต้นแล้ว วิธีนี้สร้าง slice ที่มีความยาว 0 แต่ไม่เป็น nil พร้อมรับสมาชิกผ่าน append ต่างจากการประกาศแบบธรรมดาที่จะได้ slice แบบ nil การกำหนดค่าเริ่มต้นอย่างชัดเจนนี้รับประกัน slice ที่ใช้งานได้ทันทีโดยไม่มีความเสี่ยงของพฤติกรรมที่ไม่คาดคิดเมื่อเพิ่มสมาชิก

4

ควรใช้ฟังก์ชันใดเพื่อกำหนดค่าเริ่มต้น slice ด้วยความจุที่ระบุ?

5

เกิดอะไรขึ้นเมื่อเพิ่มสมาชิกลงใน slice ที่ความจุเต็มแล้ว?

+17 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Go อื่นๆ

พื้นฐาน Go

Junior
25 คำถาม

อินเทอร์เฟซใน Go

Junior
18 คำถาม

การจัดการข้อผิดพลาด

Junior
20 คำถาม

พื้นฐาน Goroutine

Junior
20 คำถาม

Channels

Junior
22 คำถาม

Go Modules

Mid-Level
18 คำถาม

เซิร์ฟเวอร์ HTTP

Mid-Level
24 คำถาม

ไคลเอนต์ HTTP

Mid-Level
18 คำถาม

การเข้ารหัส JSON

Mid-Level
20 คำถาม

Database/SQL

Mid-Level
22 คำถาม

แพ็กเกจ context

Mid-Level
20 คำถาม

Testing

Mid-Level
22 คำถาม

รูปแบบ Concurrency

Mid-Level
24 คำถาม

ไพรมิทีฟการซิงโครไนซ์

Mid-Level
22 คำถาม

เฟรมเวิร์กเว็บ Go

Mid-Level
20 คำถาม

การออกแบบ REST API

Mid-Level
20 คำถาม

gRPC

Mid-Level
22 คำถาม

Reflection

Senior
20 คำถาม

การจัดการหน่วยความจำ

Senior
24 คำถาม

การเพิ่มประสิทธิภาพการทำงาน

Senior
22 คำถาม

Generics

Senior
20 คำถาม

Go Design Patterns

Senior
24 คำถาม

Microservices

Senior
24 คำถาม

ความปลอดภัยและการยืนยันตัวตน

Senior
24 คำถาม

Docker & Containerization

Senior
20 คำถาม

Kubernetes Basics

Senior
22 คำถาม

Go ขั้นสูง

Senior
20 คำถาม

การพัฒนา CLI

Senior
20 คำถาม

เชี่ยวชาญ Go สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี