diff --git a/ch2/ch2-06-2.md b/ch2/ch2-06-2.md index b676c4d..f017717 100644 --- a/ch2/ch2-06-2.md +++ b/ch2/ch2-06-2.md @@ -1,6 +1,6 @@ ### 2.6.2. 包的初始化 -包的初始化首先是解决包级变量的依赖顺序,然后安照包级变量声明出现的顺序依次初始化: +包的初始化首先是解决包级变量的依赖顺序,然后按照包级变量声明出现的顺序依次初始化: ```Go var a = b + c // a 第三个初始化, 为 3 @@ -22,7 +22,7 @@ func init() { /* ... */ } 每个包在解决依赖的前提下,以导入声明的顺序初始化,每个包只会被初始化一次。因此,如果一个p包导入了q包,那么在p包初始化的时候可以认为q包必然已经初始化过了。初始化工作是自下而上进行的,main包最后被初始化。以这种方式,可以确保在main函数执行之前,所有依然的包都已经完成初始化工作了。 -下面的代码定义了一个PopCount函数,用于返回一个数字中含二进制1bit的个数。它使用init初始化函数来生成辅助表格pc,pc表格用于处理每个8bit宽度的数字含二进制的1bit的bit个数,这样的话在处理64bit宽度的数字时就没有必要循环64次,只需要8次查表就可以了。(这并不是最快的统计1bit数目的算法,但是它可以方便演示init函数的用法,并且演示了如果预生成辅助表格,这是编程中常用的技术)。 +下面的代码定义了一个PopCount函数,用于返回一个数字中含二进制1bit的个数。它使用init初始化函数来生成辅助表格pc,pc表格用于处理每个8bit宽度的数字含二进制的1bit的bit个数,这样的话在处理64bit宽度的数字时就没有必要循环64次,只需要8次查表就可以了。(这并不是最快的统计1bit数目的算法,但是它可以方便演示init函数的用法,并且演示了如何预生成辅助表格,这是编程中常用的技术)。 gopl.io/ch2/popcount ```Go