6 คะแนน โดย xguru 2023-08-23 | 9 ความคิดเห็น | แชร์ทาง WhatsApp
  • Hash ของ Ruby เป็นโครงสร้างข้อมูลแบบ built-in สำหรับแมปค่ากับคีย์ มีความซับซ้อน O(1)
  • ภาษาอื่น ๆ มักมีคลาสหลายแบบสำหรับจัดการคีย์/แวลู แต่ Ruby ใช้คลาส Hash เพียงตัวเดียวในการจัดการคู่คีย์/แวลู
  • เป็นโครงสร้างข้อมูลที่ยืดหยุ่นมาก ใช้ได้หลากหลายนอกเหนือจากอ็อบเจ็กต์ข้อมูล / ดิกชันนารี / แฮชเทเบิล / ลิสต์ที่เรียงลำดับแล้ว
  • สามารถใช้อ็อบเจ็กต์แทบทุกชนิดเป็นคีย์ได้ รวมถึงสัญลักษณ์ สตริง และจำนวนเต็ม
  • เมธอด fetch ใช้กำหนดค่าเริ่มต้นได้เมื่อไม่มีคีย์นั้น
  • ใช้ delete เพื่อลบคีย์ได้ และการเรียกคีย์ที่ไม่มีอยู่ก็ไม่เป็นปัญหา
  • ซ้อนกันได้
  • หากไม่มีคีย์นั้นจะคืนค่า nil แต่สามารถกำหนดค่าเริ่มต้นได้ด้วยพร็อพเพอร์ตี default
  • มีโมดูล Enumerable รวมอยู่ด้วย จึงสามารถวนลูปแฮชได้ด้วยเมธอดอย่าง each, each_key, each_pair, each_value, keys, values เป็นต้น
  • สามารถ unpack เนื้อหาในแฮชได้ด้วยตัวดำเนินการ double splat **
  • เมธอดที่มีประโยชน์อื่น ๆ: any?(key), compact, empty?, merge, hash.eql? obj, except(*keys), reject, filter & select, fetch_values(*keys), has_key?, member?, include?, key?, has_value?, value?, length, size, count, slice(*keys), transform_values, flatten

9 ความคิดเห็น

 
joyfui 2023-08-23

ทำให้นึกถึงความประทับใจตอนเรียนภาษา c ในมหาวิทยาลัย แล้วได้เจอกับ Python list เป็นครั้งแรกเลยครับ

 
xguru 2023-08-23

พยายามจะแปล "Swiss Army knife" เป็น "มีดแมคกาเวอร์" แต่คิดว่าคนสมัยนี้น่าจะไม่เข้าใจ เลยใช้คำว่า "เครื่องมือสารพัดประโยชน์" แทน..

 
roxie 2023-08-27

น่าจะพอใช้คำว่า MacGyver ได้อยู่ แต่ถ้าไม่รู้จัก Swiss Army knife มาก่อนก็คงเข้าใจยากเหมือนกันครับ 555

 
pribess 2023-08-23

แม้แต่ฉันที่ยังเป็นวัยรุ่นก็เข้าใจได้ ดูเหมือนว่าจะมีคนที่ไม่รู้เรื่องนี้ไม่มากนัก

 
xguru 2023-08-23

โอ้ เป็นการค้นพบที่น่าทึ่งจริง ๆ นะครับ ผมคิดจริง ๆ ว่าคงไม่มีทางรู้มาก่อน
ว่าแต่ ในบรรดาผู้ใช้ GeekNews ก็มีวัยรุ่นอยู่ด้วยสินะ.. เจ๋งมากครับ!

 
antegral 2023-08-24

ดูเหมือนว่าแม้แต่นักพัฒนาวัยรุ่นก็มีเพิ่มขึ้นอย่างคาดไม่ถึง ทำให้นักพัฒนานักเรียนที่เข้ามาอ่าน GeekNews ค่อย ๆ มีมากขึ้นเช่นกัน
ตัวผมเองก็เพิ่งพ้นช่วงวัยรุ่นมาได้แค่ 9 เดือนเท่านั้น...

 
depth221 2023-08-23

'MacGyver' เป็นละครที่หลายคนน่าจะไม่รู้ว่าเคยมีอยู่จริง แต่ดูเหมือนว่าทุกคนจะเข้าใจคำว่า 'มีด MacGyver' กันหมดครับ

 
annyeong 2023-08-23

ตอนนี้มันคงอยู่ในระดับเดียวกับสุภาษิตแล้ว แบบนี้ก็คงไม่เป็นไรใช่ไหม? อย่างน้อยคนวัย 20 อย่างผมก็เข้าใจครับ :D

 
eususu 2023-08-23

อ่า ถ้าเข้าใจก็ถือว่ายืนยันว่าเป็นรุ่นใหญ่เลยนะ :)