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.

Reply via email to