Bash:
การใช้แอเรย์สมาชิก
วิธีการ:
ขั้นแรก ประกาศแอสโซซิเอทีฟอาร์เรย์ใน Bash:
declare -A my_array
จากนั้น คุณสามารถเริ่มต้นเติมค่าลงไป โดยใช้สตริงเป็นคีย์:
my_array["name"]="Linux Journal"
my_array["topic"]="Programming"
เพื่อเข้าถึงองค์ประกอบ ใช้คีย์ของมัน:
echo ${my_array["name"]} # แสดงผล: Linux Journal
การวนซ้ำผ่านคีย์และค่าก็ทำได้ง่ายดาย:
for key in "${!my_array[@]}"; do
echo "$key: ${my_array[$key]}"
done
ผลลัพธ์ตัวอย่างอาจมีลักษณะดังนี้:
name: Linux Journal
topic: Programming
เพื่อเพิ่มหรือแก้ไของค์ประกอบ แค่กำหนดค่าให้กับคีย์ คล้ายกับการเติมค่าเริ่มต้น:
my_array["readers"]="You"
และการลบองค์ประกอบออก ใช้ unset
:
unset my_array["topic"]
ภาพรวมลึกซึ้ง
แอสโซซิเอทีฟอาร์เรย์ เริ่มถูกนำมาใช้ใน Bash เวอร์ชัน 4.0 เป็นความเพิ่มเติมที่ค่อนข้างใหม่สำหรับภาษา เมื่อก่อนการมาถึงของพวกมัน การจัดการอาร์เรย์ที่ดัชนีไม่ใช่ตัวเลขนั้นทำได้ยากลำบาก มักต้องใช้วิธีแก้ไขหรือเครื่องมือภายนอกเช่น awk
หรือ sed
.
ภายใต้ฮู้ด Bash ใช้ตารางแฮชในการดำเนินการแอสโซซิเอทีฟอาร์เรย์ การดำเนินการนี้ช่วยให้การค้นหาคีย์มีประสิทธิภาพสูง ซึ่งยังคงค่อนข้างคงที่ไม่ว่าขนาดของอาร์เรย์จะเป็นเท่าไร ลักษณะสำคัญนี้มีความสำคัญต่อประสิทธิภาพในการดำเนินการสคริปต์
แม้แอสโซซิเอทีฟอาร์เรย์ใน Bash จะนำเสนอพลังและความยืดหยุ่นมากมายให้กับสคริปต์เชลล์ แต่ก็มาพร้อมกับข้อจำกัดของตัวเอง เช่น อาจจะยุ่งยากในการใช้งานเมื่อเทียบกับอาร์เรย์ในภาษาระดับสูงอย่าง Python หรือ JavaScript สำหรับงานจัดการข้อมูลที่ซับซ้อน อาจยังคงคุ้มค่าที่จะพิจารณาเครื่องมือหรือภาษาภายนอกที่เหมาะสมกับงานมากขึ้น
อย่างไรก็ตาม สำหรับงานสคริปต์ทั่วไปหลายๆ งาน แอสโซซิเอทีฟอาร์เรย์นำเสนอเครื่องมือที่มีค่าในชุดเครื่องมือของโปรแกรมเมอร์ Bash ช่วยให้สคริปต์มีการอ่านและรักษาได้ง่ายขึ้นด้วยการใช้คีย์สตริงที่มีความหมายแทนดัชนีตัวเลข