CodeBlanks Logo Icon CodeBlanks

Buffer slice

Buffer.slice ile buffer bölme öğrenirsin.

Buffer slice

Bazen bir buffer'ın yalnızca bir bölümüne ihtiyaç duyarsın. buf.subarray(start, end) buffer'ın bir görünümünü döndürür: yeni bellek ayırmaz, orijinal buffer'ı paylaşır.

Örneğin Buffer.from("merhaba").subarray(0, 3) ilk üç byte'ı (mer) verir. start dahil, end hariçtir; tıpkı dize.slice gibidir. Eski kodlarda buf.slice() görebilirsin; ama bu yöntem artık kullanımdan kaldırıldı, yerine subarray kullanılır. Görünüm paylaşıldığı için üstünde değişiklik yaparsan orijinal buffer da etkilenir.

slice kullanımdan kaldırıldı

Eski Node.js kodlarında buf.slice(start, end) görebilirsin. Bu metod da subarray gibi bir görünüm döndürür; ama kullanımdan kaldırıldı (deprecated). Yeni kodlarda subarray kullanmalısın.

İkisi de aynı işi yapar: orijinal belleği paylaşan bir görünüm verir. Ancak slice ileride kaldırılabilir. Bu yüzden resmi belgeler subarray önerir. Eğer eski bir kodu okurken slice görürsen, bunun subarray ile aynı anlama geldiğini bilmen yeterlidir. Böylece hem eski hem yeni kodları anlayabilirsin.

Uygulama Buffer'ın bir bölümünü al ve yazdır

Buffer.from("merhaba") ile bir buffer oluştur. .subarray(0, 3) ile ilk üç byte'ı al, .toString() ile metne çevir ve console.log ile yazdır.

Başlangıç kodu

index.js
// Buffer.from ile bir buffer tanımla
// buraya yaz

// subarray ile ilk üç byte'ı al, toString ile yazdır
// buraya yaz

Örnek çözüm

index.js
console.log(Buffer.from("merhaba").subarray(0, 3).toString());

Beklenen çıktı

mer

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 subarray çağrısını tamamla

Soru
Buffer.from("merhaba").____(0, 3)
Cevap
Buffer.from("merhaba").subarray(0, 3)

Açıklama: subarray bir buffer görünümü döndürür.

2 Parçayı rolüne eşle

Kavram Anlamı
subarray Görünüm döndürür
start Başlangıç indeksi (dahil)
end Bitiş indeksi (hariç)
slice Kullanımdan kaldırıldı

3 Buffer.from("merhaba").subarray(0, 3) ne döndürür?

index.js
Buffer.from("merhaba").subarray(0, 3)
  • "mer" Doğru cevap
  • "merha"
  • "merhaba"
  • "rha"

Açıklama: subarray(0, 3) ilk üç byte'ı verir: mer.

Orta seviye bölümündeki tüm dersler