Goで文字列の間と最後に文字を挿入したい


Golangで文字列、例えばAAAAAAの間にABABABABABABのように別の文字列を挿入したいです。もちろん、for文で回して実装できますが、スピードを求める場合利用できる関数などはありますか。  
自分は`strings.FieldsFunc`が使えると考えやってみましたが、できませんでした。もしあれば教えて下さい。  
<https://play.golang.org/p/kAcWCHBPfK>




`regexp.ReplaceAllString()` を使ってみました(`A` を挟んでいます)。

[code]

    package main
    
    import (
        "fmt"
        "regexp"
    )
    
    func main() {
        a := "abcdefghijklmnopqrstuvwxyz"
        re, _ := regexp.Compile(`(.)`)
        replaced := re.ReplaceAllString(a, "${1}A")
    
        fmt.Println(replaced)
    }
    
[/code]




KoRoN さんの別解ですが。

[code]

    package main
    
    import (
        "bytes"
        "fmt"
    )
    
    func InsertEach(s string, t string) string {
        var b bytes.Buffer
        for _, r := range s {
            if b.Len() > 0 {
                b.WriteString(t)
            }
            b.WriteRune(r)
        }
        return b.String()
    }
    
    func main() {
        fmt.Println(InsertEach("abcdefghijklmnopqrstuvwxyz", "A"))
        fmt.Println(InsertEach("あいおえおかきくけこさしすせそ", "～"))
    }
    
[/code]

for-range string はコピーが発生しない点、bytes.Buffer を使っているのでアロケーションを最小限に抑えられる点を重視してみました。

