গোতে কোনও টুকরো পরিষ্কার করার উপযুক্ত উপায় কী?
গো ফোরামে আমি যা পেয়েছি তা এখানে :
// test.go
package main
import (
"fmt"
)
func main() {
letters := []string{"a", "b", "c", "d"}
fmt.Println(cap(letters))
fmt.Println(len(letters))
// clear the slice
letters = letters[:0]
fmt.Println(cap(letters))
fmt.Println(len(letters))
}
এটা কি সঠিক?
স্পষ্ট করতে, বাফার সাফ করা হয়েছে যাতে এটি পুনরায় ব্যবহার করা যায়।
বাইটস প্যাকেজটিতে বাফার.আর ট্রান্সকেট ফাংশনটির একটি উদাহরণ ।
লক্ষ্য করুন যে রিসেটটি কেবল ট্রানসেটকে (0) কল করে। সুতরাং দেখা যাচ্ছে যে এই ক্ষেত্রে 70 টি লাইন মূল্যায়ন করবে: b.buf = b.buf [0: 0]
http://golang.org/src/pkg/bytes/buffer.go
// Truncate discards all but the first n unread bytes from the buffer.
60 // It panics if n is negative or greater than the length of the buffer.
61 func (b *Buffer) Truncate(n int) {
62 b.lastRead = opInvalid
63 switch {
64 case n < 0 || n > b.Len():
65 panic("bytes.Buffer: truncation out of range")
66 case n == 0:
67 // Reuse buffer space.
68 b.off = 0
69 }
70 b.buf = b.buf[0 : b.off+n]
71 }
72
73 // Reset resets the buffer so it has no content.
74 // b.Reset() is the same as b.Truncate(0).
75 func (b *Buffer) Reset() { b.Truncate(0) }