
โครงสร้างข้อมูล Go
Arrays, slices, maps, structs, pointers, make vs new, ค่า nil
1slice ใน Go คืออะไร?
slice ใน Go คืออะไร?
คำตอบ
slice คือมุมมองแบบไดนามิกบน array ที่อยู่เบื้องหลัง ซึ่งช่วยให้จัดการลำดับของสมาชิกที่มีความยาวแปรผันได้ ต่างจาก array ที่มีขนาดคงที่กำหนดตั้งแต่ตอนคอมไพล์ slice สามารถขยายหรือหดได้แบบไดนามิกผ่านการดำเนินการอย่าง append ความยืดหยุ่นนี้ทำให้มันเป็นโครงสร้างข้อมูลแบบลำดับที่ใช้บ่อยที่สุดใน Go สำหรับเก็บคอลเลกชันของสมาชิกชนิดเดียวกัน
2ความแตกต่างหลักระหว่าง array กับ slice ใน Go คืออะไร?
ความแตกต่างหลักระหว่าง array กับ slice ใน Go คืออะไร?
คำตอบ
ความแตกต่างพื้นฐานอยู่ที่ขนาด: array มีขนาดคงที่ที่กำหนดตอนคอมไพล์และเป็นส่วนหนึ่งของชนิดข้อมูลเอง ในขณะที่ slice มีขนาดแบบไดนามิกที่เปลี่ยนแปลงได้ตอนรันไทม์ ความแตกต่างนี้หมายความว่า array สองตัวที่มีขนาดต่างกันถือเป็นชนิดที่เข้ากันไม่ได้ ในขณะที่ slice ทุกตัวที่มีชนิดสมาชิกเดียวกันเข้ากันได้ ดังนั้น slice จึงยืดหยุ่นกว่าและถูกใช้บ่อยกว่าในโค้ด Go สมัยใหม่
3จะสร้าง slice ว่างใน Go ได้อย่างไร?
จะสร้าง slice ว่างใน Go ได้อย่างไร?
คำตอบ
ไวยากรณ์ literal ที่ใช้วงเล็บเหลี่ยมว่างตามด้วยวงเล็บปีกกาว่างเป็นวิธีที่เป็นสำนวนในการสร้าง slice ว่างที่ถูกกำหนดค่าเริ่มต้นแล้ว วิธีนี้สร้าง slice ที่มีความยาว 0 แต่ไม่เป็น nil พร้อมรับสมาชิกผ่าน append ต่างจากการประกาศแบบธรรมดาที่จะได้ slice แบบ nil การกำหนดค่าเริ่มต้นอย่างชัดเจนนี้รับประกัน slice ที่ใช้งานได้ทันทีโดยไม่มีความเสี่ยงของพฤติกรรมที่ไม่คาดคิดเมื่อเพิ่มสมาชิก
ควรใช้ฟังก์ชันใดเพื่อกำหนดค่าเริ่มต้น slice ด้วยความจุที่ระบุ?
เกิดอะไรขึ้นเมื่อเพิ่มสมาชิกลงใน slice ที่ความจุเต็มแล้ว?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Go อื่นๆ
พื้นฐาน Go
อินเทอร์เฟซใน Go
การจัดการข้อผิดพลาด
พื้นฐาน Goroutine
Channels
Go Modules
เซิร์ฟเวอร์ HTTP
ไคลเอนต์ HTTP
การเข้ารหัส JSON
Database/SQL
แพ็กเกจ context
Testing
รูปแบบ Concurrency
ไพรมิทีฟการซิงโครไนซ์
เฟรมเวิร์กเว็บ Go
การออกแบบ REST API
gRPC
Reflection
การจัดการหน่วยความจำ
การเพิ่มประสิทธิภาพการทำงาน
Generics
Go Design Patterns
Microservices
ความปลอดภัยและการยืนยันตัวตน
Docker & Containerization
Kubernetes Basics
Go ขั้นสูง
การพัฒนา CLI
เชี่ยวชาญ Go สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี