1 minute read

Tags: ,

先這樣 等等冥想完 再來

繼續寫 心得

也有可能 不寫了 XDDD

但! 謝謝小雞老師的 code review 真心感激 :)


package main

import (
	"fmt"
	"time"
)

func loopFunc(stringSlice []string) {
	start := time.Now()
	var checker = func(arr []string,s string) bool{
		for _, i := range arr {
			if i == s {
				return true
			}
		}
		return false
	}

	var noDuplicatedSlice []string

	for _, s := range stringSlice {
		if !checker(noDuplicatedSlice, s) {
			noDuplicatedSlice = append(noDuplicatedSlice, s)
		}
	}

	fmt.Println("stringSlice", stringSlice)
	fmt.Println("noDuplicatedSlice", noDuplicatedSlice)
	fmt.Println("duration [loop]: ", time.Since(start))
}

func mapFunc(stringSlice []string) {
	start := time.Now()
	var stringMap = make(map[string]bool, 0)
	for _, i := range stringSlice {
		if exist, _ := stringMap[i]; !exist {
			stringMap[i] = true;
		}
	}
	var noDuplicatedSlice []string
	for key, _ := range stringMap {
		noDuplicatedSlice = append(noDuplicatedSlice, key)
	}
	fmt.Println("stringSlice", stringSlice)
	fmt.Println("noDuplicatedSlice", noDuplicatedSlice)
	fmt.Println("duration [map]: ", time.Since(start))
}

func main() {
	var stringSlice = []string{"test", "test", "test", "test", "test1", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5", "test2", "test3", "test4", "test5"}
	loopFunc(stringSlice)
    // duration [loop]:  1.3756ms
	fmt.Println("=====")
	mapFunc(stringSlice)
    // duration [map]:  997.3µs
}