Langsung ke konten

Arsip

Standard Library

4 artikel
Go 13 Sep 2026 4 min read

Filter Slice Secara In-Place dengan slices.DeleteFunc di Go

Memfilter slice Go sering dimulai dengan loop kecil yang mempertahankan elemen tertentu dan membuang sisanya. slices.DeleteFunc menyatakan operasi kebalikannya secara langsung: predicate menandai elemen yang akan dihapus, elemen yang dipertahankan tetap dalam urutan semula, dan backing array yang ada digunakan kembali. Properti terakhir itu penting. DeleteFunc bukan filter yang menyalin data. Fungsi ini memutasi storage slice yang diberikan dan mengembalikan slice header dengan panjang hasil. Predicate memilih elemen yang akan dihapus Fungsi ini menerima slice dan deletion predicate:

Go 11 Sep 2026 7 min read

Urutkan Nilai Iterator Secara Stabil di Go dengan slices.SortedStableFunc

Sebuah iterator dapat menghasilkan nilai dalam urutan yang sudah memiliki arti: urutan kedatangan, urutan file, urutan database, atau urutan yang dibentuk oleh tahap pipeline sebelumnya. Jika Anda perlu mengurutkan nilai tersebut berdasarkan satu key tanpa mengacak kelompok dengan key yang sama, slices.SortedStableFunc menangani kedua langkah itu sekaligus. Fungsi ini mengonsumsi sebuah iter.Seq, mengumpulkan nilai yang dihasilkan ke slice baru, lalu mengurutkan slice tersebut dengan comparator. Ketika comparator mengembalikan nol, nilai-nilai itu mempertahankan urutan relatif yang sama seperti di sequence.

Go 10 Sep 2026 5 min read

Tambahkan Nilai Iterator ke Slice Go dengan slices.AppendSeq

Iterator praktis saat data mengalir melalui pipeline, tetapi pada akhirnya Anda mungkin perlu menyimpan nilai-nilai tersebut dalam sebuah slice. Jika sudah memiliki slice tujuan, mengumpulkan iterator secara terpisah lalu menambahkannya hanya menciptakan langkah perantara yang tidak perlu. Go 1.23 menambahkan slices.AppendSeq tepat untuk batas ini. Fungsi tersebut mengonsumsi sebuah iter.Seq, menambahkan setiap nilai yang dihasilkan ke slice yang sudah ada, lalu mengembalikan slice hasilnya. Apa yang dilakukan slices.AppendSeq Fungsi ini memiliki signature yang ringkas:

Python 05 Sep 2026 8 min read

Buffer Data Sementara di Python dengan SpooledTemporaryFile

Data sementara sering memiliki profil ukuran yang sulit diprediksi. Sebagian besar request mungkin hanya menghasilkan beberapa kilobyte, sementara sesekali proses import, report, archive, atau upload dapat tumbuh hingga ratusan megabyte. Menggunakan io.BytesIO nyaman untuk kasus kecil, tetapi seluruh isinya tetap berada di memori. Menggunakan temporary file menghindari penyimpanan seluruh payload di memori, tetapi setiap payload memakai storage berbasis filesystem meskipun ukurannya sangat kecil. tempfile.SpooledTemporaryFile dari Python menawarkan jalan tengah. Objek ini berperilaku seperti file sambil menyimpan data di memori hingga threshold yang dikonfigurasi. Ketika data melewati threshold tersebut, data di-roll over ke temporary file dan operasi berlanjut melalui interface yang sama.