การดู : 239

12/04/2026 18:15น.

JS2GO EP.8 การทำงานกับ Arrays และ Slices ใน JavaScript และ Go

JS2GO EP.8 การทำงานกับ Arrays และ Slices ใน JavaScript และ Go

#ความแตกต่างของ Go และ JavaScript

#JavaScript

#Go

#Arrays

#Slices

#JavaScript กับ Go

ในบทความนี้เราจะมาทำความเข้าใจเกี่ยวกับ Arrays และ Slices ใน JavaScript และ Go โดยจะเปรียบเทียบวิธีการใช้งาน Arrays และ Slices ในทั้งสองภาษา ซึ่งทั้งสองประเภทนี้ใช้ในการจัดเก็บข้อมูลหลายค่าในโครงสร้างเดียวกัน แต่มีการใช้งานที่แตกต่างกันในแต่ละภาษา

 

การทำงานกับ Arrays ใน JavaScript และ Go

JavaScript:

ใน JavaScript, Array ใช้เพื่อเก็บข้อมูลหลายประเภทในลำดับเดียวกัน และสามารถเพิ่มหรือเอาข้อมูลออกได้ตลอดเวลา

การประกาศและการใช้งาน Array:

let numbers = [1, 2, 3, 4, 5];  // Array พื้นฐาน
console.log(numbers[0]);  // เข้าถึงค่าแรกใน Array
numbers.push(6);  // เพิ่มค่าเข้าไปใน Array
console.log(numbers);  // [1, 2, 3, 4, 5, 6]
numbers.pop();  // ลบค่าตัวสุดท้าย
console.log(numbers);  // [1, 2, 3, 4, 5]

คำอธิบาย:

  • ใน JavaScript, Array สามารถเก็บข้อมูลหลายประเภทได้ และสามารถเพิ่ม/ลบข้อมูลจาก Array ได้ง่าย ๆ โดยใช้เมธอดเช่น push(), pop(), shift(), หรือ unshift().

Go:

ใน Go, Array มีขนาดที่คงที่ ซึ่งต้องกำหนดขนาดของ Array ตั้งแต่เริ่มต้น และไม่สามารถเปลี่ยนแปลงขนาดได้หลังจากที่ประกาศแล้ว

การประกาศและการใช้งาน Array:

var numbers [5]int = [5]int{1, 2, 3, 4, 5}  // Array ขนาดคงที่
fmt.Println(numbers[0])  // เข้าถึงค่าแรกใน Array
numbers[4] = 6  // แก้ไขค่าของ Array
fmt.Println(numbers)  // [1 2 3 4 6]

คำอธิบาย:

  • ใน Go, Array จะต้องระบุขนาดเมื่อประกาศและไม่สามารถเปลี่ยนแปลงขนาดได้หลังจากนั้น หากต้องการขยายขนาดของ Array ต้องใช้ Slice แทน

 

การทำงานกับ Slices ใน JavaScript และ Go

JavaScript:

ใน JavaScript, Array สามารถใช้แทน Slice ได้ เนื่องจาก Array สามารถยืดหยุ่นและสามารถขยายขนาดได้ตามต้องการ

การทำงานกับ Subarray (เหมือน Slice):

let numbers = [1, 2, 3, 4, 5];
let slice = numbers.slice(1, 4);  // สร้าง Slice จาก index 1 ถึง 3
console.log(slice);  // [2, 3, 4]

คำอธิบาย:

  • JavaScript ใช้ Array ที่สามารถขยายขนาดได้แทน Slice ในการเก็บข้อมูลลำดับหลายค่า และสามารถใช้ slice() เพื่อสร้าง subarray หรือ slice ของ Array

Go:

ใน Go, Slice เป็นตัวเลือกที่ยืดหยุ่นกว่า Array เนื่องจาก Slice สามารถปรับขนาดได้ระหว่างการใช้งาน และมักใช้ในการทำงานกับข้อมูลลำดับที่ไม่รู้ขนาดล่วงหน้า

การประกาศและการใช้งาน Slice:

numbers := []int{1, 2, 3, 4, 5}  // Slice โดยไม่ต้องกำหนดขนาด
fmt.Println(numbers[1:4])  // Slice ตั้งแต่ index 1 ถึง 3
numbers = append(numbers, 6)  // เพิ่มค่าเข้าไปใน Slice
fmt.Println(numbers)  // [1 2 3 4 5 6]

คำอธิบาย:

  • Go ใช้ Slice แทน Array เพื่อให้สามารถเพิ่มขนาดได้ตามต้องการ โดยใช้คำสั่ง append() ซึ่งเป็นฟังก์ชันที่ใช้ในการเพิ่มค่าลงใน Slice

 

ข้อดีข้อเสียของการใช้ Array และ Slice

JavaScript:

  • ข้อดี:
    • Array ใน JavaScript สามารถขยายขนาดได้ตามต้องการ
    • เมธอดที่ช่วยในการเพิ่ม/ลบข้อมูลใน Array ทำให้การจัดการข้อมูลใน Array เป็นเรื่องง่าย
  • ข้อเสีย:
    • Array ใน JavaScript มีข้อจำกัดเรื่องการจัดการข้อมูลในบางกรณี เช่น การค้นหาหรือจัดเรียงข้อมูลที่มีขนาดใหญ่

Go:

  • ข้อดี:
    • Slice ใน Go ยืดหยุ่นและสามารถปรับขนาดได้ตามต้องการ
    • Go มักจะใช้ Slice ในการจัดการข้อมูลที่มีขนาดไม่คงที่ เนื่องจากสามารถขยายหรือย่อขนาดได้
  • ข้อเสีย:
    • Array ใน Go มีขนาดที่คงที่ ไม่สามารถเปลี่ยนแปลงขนาดได้หลังจากประกาศ
    • การใช้ Slice อาจทำให้การจัดการหน่วยความจำต้องใช้การคำนวณที่มากขึ้นในการจัดการขนาดของ Slice

 


 

สรุปและข้อแนะนำ:

  • JavaScript: ใช้ Array ที่สามารถขยายขนาดได้และเหมาะสำหรับการพัฒนา web applications ที่ต้องการการจัดการข้อมูลลำดับที่ยืดหยุ่น
  • Go: ใช้ Array และ Slice ที่มีความยืดหยุ่นสูง โดยเฉพาะ Slice ที่สามารถปรับขนาดได้ตามต้องการ

หากคุณต้องการพัฒนา web applications ที่เน้นการจัดการข้อมูลที่มีความยืดหยุ่น JavaScript เป็นตัวเลือกที่ดี แต่ถ้าคุณต้องการประสิทธิภาพสูงในการจัดการข้อมูลที่มีขนาดไม่แน่นอน Go จะเหมาะสมกว่า

ตอนต่อไป:

ในตอนถัดไปของซีรีส์ JS2GO เราจะพาคุณไปทำความรู้จักกับ Pointers และ Memory Management ใน Go กับ JavaScript เพื่อเปรียบเทียบวิธีการจัดการหน่วยความจำและการใช้งาน Pointers ในทั้งสองภาษา

หากคุณต้องการเรียนรู้วิธีการจัดการ Array และ Slice ใน JavaScript และ Go อย่างละเอียด และพัฒนาทักษะการเขียนโปรแกรมให้มีประสิทธิภาพ Superdev School พร้อมที่จะช่วยเสริมทักษะการพัฒนาโปรแกรมของคุณ! สมัครเรียนกับเราเลย!

 

อ่านบทความ Golang The Series: Golang The Series

อ่านบทความ JS2GO: JS2GO

🔵 Facebook: Superdev School  (Superdev)

📸 Instagram: superdevschool

🎬 TikTok: superdevschool

🌐 Website: www.superdev.school