On Fri, Mar 3, 2017 at 5:31 AM, T L <tapir....@gmail.com> wrote: > > On Friday, March 3, 2017 at 7:52:42 PM UTC+8, Ian Davis wrote: >> >> Perhaps you can help the discussion by explaining the advantages you see >> in that change? > > > The advantage is to save a few bytes memory and make faster copying.
I don't see how the suggestion saves memory. Currently, we can represent a string or slice with a single allocation. Your suggestion would require us to use two allocations: one for the bytes, and one for the structure pointing to the bytes. In some cases escape analysis would eliminate that second allocation, but not in all. Ian >> On Fri, 3 Mar 2017, at 11:44 AM, T L wrote: >> >> >> >> On Friday, March 3, 2017 at 4:27:02 PM UTC+8, Konstantin Khomoutov wrote: >> >> On Thu, 2 Mar 2017 23:49:52 -0800 (PST) >> T L <tapi...@gmail.com> wrote: >> >> > After all, the len and cap fields of any value of string and slice >> > values are immutable. >> >> Could you elaborate? >> >> Are you suggesting to replace >> >> var s []string >> >> if len(s) ... >> if cap(s) ... >> >> with >> >> if s.len ... >> if s.cap ... >> >> ? >> >> If yes, then what would be the prospective benefits? >> >> >> >> No, I mean why not define string and slice as >> >> type string struct { >> underlyingString *struct { >> data *byte >> len int >> } >> } >> >> type slice struct { >> underlyingSlice *struct { >> underlyingElements unsafe.Pointer >> len int >> cap int >> } >> } >> instead of the current: >> >> type string struct { >> data *byte >> len int >> } >> >> type slice struct { >> underlyingElements unsafe.Pointer >> len int >> cap int >> } >> >> >> >> >> >> -- >> 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...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> >> > -- > 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. -- 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.