知识内容参考《算法图解》P47
package main
import "fmt"
func findCount(b[]byte)(int) {
n:= len(b)
if n<=0 {
return 0
}else {
return 1+findCount(b[:n-1]) //取值: [0,n-1) b[n-1]占用一个字符,所以+1
/*
return findCount(b[:n])
会发生以下错误:
runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow
*/
}
}
func main() {
str:="江洲123"
fmt.Println(findCount([]byte(str)))
}
运行结果:
这也充分说明在go语言中,一个汉字占用3个字符。