Tag: immutability
7 รายการ
Blog
Java collectingAndThen: เก็บข้อมูลก่อน แล้วล็อกผลลัพธ์ตอนจบ
ใช้ Collectors.collectingAndThen เพิ่ม finishing step เช่น unmodifiable list โดยไม่กระจาย post-processing นอก stream
Java Map.ofEntries: สร้าง immutable map หลายคู่โดยไม่เปิดช่องให้แก้ทีหลัง
ใช้ Map.entry กับ Map.ofEntries สำหรับตารางคงที่ พร้อมข้อจำกัด null, duplicate key และ Java 17 assertions
Java List.copyOf — สแนปช็อตลิสต์แบบอ่านอย่างเดียวในคำสั่งเดียว
ใช้ List.copyOf สร้างสำเนา immutable จาก Collection — กัน caller แก้ลิสต์ต้นทางโดยไม่ตั้งใจ พร้อมตัวอย่าง verified บน JDK 21
Python MappingProxyType: แจก View อ่านอย่างเดียวโดยไม่แช่แข็งข้อมูลต้นทาง
ใช้ types.MappingProxyType ป้องกัน caller เขียน dict ผ่าน API แต่ยังเห็นการอัปเดตจาก owner พร้อมข้อควรระวังเรื่องค่าซ้อน
Java Map.copyOf คือ Snapshot แต่ unmodifiableMap ยังมองเห็นต้นฉบับเปลี่ยน
แยก immutable copy ออกจาก read-only view พร้อม assertions ที่เผย aliasing ของ map ต้นทาง

PEP 814: frozendict ใน builtins ของ Python 3.15
สรุป frozendict ชนิด immutable mapping ใน builtins ตาม PEP 814 Final สำหรับแชร์ค่าคงที่และใส่เป็นอาร์กิวเมนต์ของ lru_cache ได้
Python copy.replace: อัปเดต Value Object โดยไม่แก้ของเดิม
ใช้ copy.replace กับ dataclass แบบ frozen เพื่อสร้างสถานะใหม่เฉพาะฟิลด์ พร้อมตรวจ invariant ด้วย unittest