Tag: slices

10 รายการ

Blog

กระรอกดินต้นฉบับกำลังส่งเมล็ดจากสายพานทีละเมล็ดลงตะกร้าที่มีของอยู่แล้ว
gogolangslices

Go slices.AppendSeq: เติม iterator ลง slice โดยไม่ต้องเขียนลูปเอง

ใช้ slices.AppendSeq ต่อค่าจาก iter.Seq ลง slice ที่มีอยู่ พร้อมทดสอบ capacity, iterator แบบใช้ครั้งเดียว และ ownership ของข้อมูล

พี่โชว์
กระรอกดินต้นฉบับกำลังขยายถาดชิ้นงานแล้วตัดพื้นที่สำรองส่วนเกินบนโต๊ะสีมิ้นต์
gogolangslices

Go slices.Grow กับ Clip: จองความจุให้พอ แล้วคืนส่วนเกินตรงขอบงาน

ใช้ slices.Grow ลดการขยาย backing array ซ้ำ และ slices.Clip ตัด capacity ก่อนส่งข้อมูลข้าม boundary พร้อม Go tests ที่รันจริง

พี่โชว์
กระรอกดินต้นฉบับกำลังต่อถาดข้อมูลสามใบเข้ารางใหม่บนโต๊ะสีมิ้นต์ โดยถาดต้นทางยังวางแยกอยู่
goslicesstdlib

Go slices.Concat: รวมหลาย slice โดยไม่ผูกผลลัพธ์กับ backing array เดิม

ใช้ slices.Concat รวมข้อมูลหลายก้อน พร้อมทดสอบ aliasing, capacity และกรณีที่ append เดิมอ่านยาก

พี่โชว์
กระรอกดินต้นฉบับกำลังใช้แว่นขยายรวมการ์ดงานที่เหมือนกันและวางติดกันบนโต๊ะสีมิ้นต์
goslicesstdlib

Go slices.CompactFunc: รวมข้อมูลซ้ำที่ติดกันด้วยกติกาของเรา

ลดข้อมูลซ้ำแบบ adjacent โดยกำหนด equality เอง พร้อมแยกกรณีที่ต้อง sort ก่อนและผลต่อ backing array

พี่โชว์
อิกัวนาต้นฉบับกำลังหมุนถาดแบ่งช่องสีเขียวให้ข้อมูลสองช่องหน้าเลื่อนไปท้าย
zigstdlibmemory

Zig std.mem.rotate: หมุน slice in-place สำหรับคิวแบบวงแหวน

เข้าใจทิศทาง amount, ค่าเกินความยาว และ trade-off ของการหมุนข้อมูลจริงเทียบกับเก็บ head index

พี่โชว์
อิกัวนาต้นฉบับเลื่อนไม้ชี้จากธงเริ่มสีเขียวไปยังลูกปัดตัวคั่นสีอำพันถัดไป
zigstdlibparsing

Zig indexOfScalarPos: ค้นตัวคั่นต่อจาก cursor โดยไม่ตัด slice ซ้ำ

ใช้ std.mem.indexOfScalarPos ทำ parser แบบเดิน cursor พร้อมเข้าใจ null และขอบเขตเริ่มค้นหา

พี่โชว์
กระรอกดินต้นฉบับเดินเก็บของจากท้ายถาดมาหน้าตามลูกศรย้อน โดยของในถาดเดิมไม่ถูกสลับ
goslicesiterators

Go slices.Backward: วนจากท้ายโดยไม่กลับลำดับข้อมูลต้นฉบับ

ใช้ iterator ย้อนลำดับใน Go เมื่ออยากอ่านจากท้ายไปหน้า โดยไม่ mutate slice และไม่เขียน index loop เอง

พี่โชว์
อีกัวนาต้นฉบับหมุนแถวลูกปัดสีเขียวให้กลับทิศบนโต๊ะมิ้นต์
zigmemoryslices

Zig std.mem.reverse: กลับลำดับในที่เดิม พร้อมเข้าใจ slice และ mutation

ทดลอง reverse slice แบบ in-place ใน Zig 0.16 และระวังเรื่องข้อมูลต้นฉบับถูกแก้

พี่โชว์
อิกัวนาตัวเล็กต้นฉบับเลื่อนกรอบสีอำพันครอบก้อนข้อมูลสีเขียวทีละช่วงโดยไม่ยกก้อนออกจากราง
zigslicesiterator

Zig std.mem.window: ทำ Sliding Window โดยคืน Slice ไม่คัดลอกข้อมูล

ใช้ std.mem.window สร้าง moving window, chunk และ sampling พร้อมระวัง tail slice กับ size/advance ที่ห้ามเป็นศูนย์

พี่โชว์
กระรอกดินต้นฉบับแบ่งเมล็ดบนสายพานเป็นถาดละสามเม็ด โดยขอบถาดป้องกันไม่ให้ไหลปนกัน
goslicesiterator

Go slices.Chunk: แบ่ง batch โดยไม่เปิดช่องให้ append ทับข้อมูลข้างเคียง

ใช้ slices.Chunk เดินข้อมูลเป็น batch แบบ iterator พร้อมเข้าใจ clipped capacity และขอบเขตของ slice ที่แชร์ backing array

พี่โชว์