Actually, it is even possible that not even a new slice header is created in this case, but I did not check.
On Thu, Jan 18, 2018 at 3:56 PM Bruno Albuquerque <b...@bug-br.org.br> wrote: > It creates a new slice header, but the backing array is not copied. > > On Thu, Jan 18, 2018 at 3:35 PM Peng Yu <pengyu...@gmail.com> wrote: > >> Dan & Bruno, >> >> I didn't realize that it is as simple as that :) Thanks. >> >> Does it involve any extra copy of the byte slice? Or f.Write literally >> access the memory of d and only access 2 bytes of data for writing to >> the buffer? >> >> On Thu, Jan 18, 2018 at 5:13 PM, Dan Kortschak >> <dan.kortsc...@adelaide.edu.au> wrote: >> > If you want to write a length shorter than the slice, make the slice >> > shorter. No, seriously... >> > >> > n, err := f.Write(d[:2]) >> > >> > On Thu, 2018-01-18 at 17:04 -0600, Peng Yu wrote: >> >> Hi, >> >> >> >> The following example shows how to write a byte slice to a buffer. >> >> But >> >> what if I want only write a length shorter (say 2 instead of 5) than >> >> the size of the slice. Is there a function that allows users to >> >> specify the length to write? Thanks. >> >> >> >> $ cat main.go >> >> #!/usr/bin/env gorun >> >> // vim: set noexpandtab tabstop=2: >> >> package main >> >> >> >> import ( >> >> "os" >> >> "bufio" >> >> "fmt" >> >> ) >> >> >> >> func main() { >> >> f := bufio.NewWriter(os.Stdout) >> >> d := []byte{'s', 'o', 'm', 'e', '\n'} >> >> n, err := f.Write(d) >> >> f.Flush() >> >> fmt.Printf("wrote %d bytes, error %q\n", n, err) >> >> } >> >> >> >> -- >> >> Regards, >> >> Peng >> >> >> >> >> >> -- >> Regards, >> Peng >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.