How to reverse a string in Go?

前端 未结 28 1995
天涯浪人
天涯浪人 2020-12-04 06:45

How can we reverse a simple string in Go?

28条回答
  •  猫巷女王i
    2020-12-04 07:20

    //Reverse reverses string using strings.Builder. It's about 3 times faster
    //than the one with using a string concatenation
    func Reverse(in string) string {
        var sb strings.Builder
        runes := []rune(in)
        for i := len(runes) - 1; 0 <= i; i-- {
            sb.WriteRune(runes[i])
        }
        return sb.String()
    }
    
    
    //Reverse reverses string using string
    func Reverse(in string) (out string) {
        for _, r := range in {
            out = string(r) + out
        }
        return
    }
    
    BenchmarkReverseStringConcatenation-8   1000000 1571 ns/op  176 B/op    29 allocs/op
    BenchmarkReverseStringsBuilder-8        3000000 499 ns/op   56 B/op 6 allocs/op
    

    Using strings.Builder is about 3 times faster than using string concatenation

提交回复
热议问题