package main
import (
"fmt"
"strings"
"time"
)
//func main() {
// value := "bird, cat and fish"
//
// // Create replacer with pairs as arguments.
// r := strings.NewReplacer("bird", "dog",
// "cat", "lion",
// "fish", "monkey")
//
// // Replace all pairs.
// result := r.Replace(value)
// fmt.Println(result)
//}
func main() {
original := "cat and dog"
// Create Replacer (excluded from benchmark time).
r := strings.NewReplacer("cat", "car",
"and", "or",
"dog", "truck")
t0 := time.Now()
// Version 1: use Replacer.
for i := 0; i < 1000000; i++ {
result := r.Replace(original)
if result != "car or truck" {
fmt.Println(0)
}
}
t1 := time.Now()
// Version 2: use Replace calls.
for i := 0; i < 1000000; i++ {
temp := strings.Replace(original, "cat", "car", -1)
temp = strings.Replace(temp, "and", "or", -1)
result := strings.Replace(temp, "dog", "truck", -1)
if result != "car or truck" {
fmt.Println(0)
}
}
t2 := time.Now()
// Results.
fmt.Println(t1.Sub(t0))
fmt.Println(t2.Sub(t1))
}