Go语言 算法图解——4.1编写一个递归函数来计算列表包含的字符

知识内容参考《算法图解》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个字符。

猜你喜欢

转载自blog.csdn.net/weixin_42117918/article/details/81837936