Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Seems to have missed the strings.Cut* family added to go 1.18


Well, they are implemented in a pretty similar way: https://cs.opensource.google/go/go/+/refs/tags/go1.21.4:src/... so it shouldn't affect the benchmarks too much.


Cut only scans the string once (not twice) and doesn't allocate a slice to return.


Maybe I'm confused on how strings work but if this doesn't allocate:

        // excerpted from Cut
        if i := Index(s, sep); i >= 0 {
                return s[:i], s[i+len(sep):], true
        }
        return s, "", false
Then why shouldn't this also not allocate?

        eoc = strings.Index(round, ", ")
        if eoc == -1 {
                currentScoreWithColor = round
        } else {
                currentScoreWithColor = round[:eoc]
                round = round[eoc+2:]
        }
Edit: oh, you're comparing it to Split. I was comparing it to what they ended up implementing.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: