日常练习Go语言的代码编写,采用闭包的方式,可以快速从数组中查找字符串。
练习:试编写一段代码。比如已知数组arr[10]strin保存了10个元素,现在要查找“AA”在其中是否存在。打印提出,如果有多个“AA” ,也要找到对应的下标。并测试代码执行的时长。
package main
import (
"fmt"
"time"
)
func SearchStr(str []string) func (string){
index := -1
return func(findStr string) {
for i := 0; i < len(str); i ++ {
if findStr == str[i] { //找到要找的字符串
index = i
str[index] = findStr
fmt.Printf("找到下标为[%v]的字符串%q \n",i,str[index])
continue
} else if i == len(str) - 1 {//最后一位下标位也没有找到要找到的字符串
break
}
}
if index != -1 { // 找到了
str[index] = findStr
} else if index == -1 { //没有找到
fmt.Printf("没有找到该%q的字符串",findStr)
}
println()
}
}
func main() {
var str = [...]string {"AA","BB","CC","DD","AA","FF","GG","AA","II","AA"}
findStr := "AA"
start := time.Now().UnixNano()
isFind := SearchStr(str[:])
isFind(findStr)
end := time.Now().UnixNano()
fmt.Printf("代码块执行时间为%v纳秒", (end - start))
println()
}
输出结果: