review chapter 18 , and append my info to readme
@@ -37,6 +37,7 @@
- [@leisore](https://github.com/leisore)
- [@dake](https://github.com/dake)
- [@glight2000](https://github.com/glight2000)
+ - [@songleo](https://github.com/songleo)
## 授权许可
@@ -19,6 +19,7 @@
+- [@songleo](https://github.com/songleo)
## 适用人群
@@ -32,7 +32,9 @@ for ix, ch := range str {
如何获取一个字符串的字符数:
- 最快速:`utf8.RuneCountInString(str)`
+ 最快速:`utf8.RuneCountInString(str)`
+
+ `len([]int(str))`
(5)如何连接字符串:
@@ -8,7 +8,7 @@
(4)尽可能的使用数组和切片代替映射(详见参考文献15);
-(5)如果只想获取切片中某项值,不需要值的索引,尽可能的使用`for range`去遍历切片,这比必须去查询切片中的每个元素要快一些;
+(5)如果只想获取切片中某项值,不需要值的索引,尽可能的使用`for range`去遍历切片,这比必须查询切片中的每个元素要快一些;
(6)当数组元素是稀疏的(例如有很多`0`值或者空值`nil`),使用映射会降低内存消耗;
@@ -27,4 +27,4 @@
- [目录](directory.md)
- 上一节:[其他](18.10.md)
-- 下一章:[构建一个完整的应用程序](19.0.md)
+- 下一章:[构建一个完整的应用程序](19.0.md)
@@ -2,11 +2,11 @@
出于性能考虑的建议:
-实践经验表明,如果你使用并行计算获得高于串行运算的效率:在协程内部已经完成的大部分工作,其开销比创建协程和协程间通信还高。
+实践经验表明,如果你使用并行运算获得高于串行运算的效率:在协程内部已经完成的大部分工作,其开销比创建协程和协程间通信还高。
1 出于性能考虑建议使用带缓存的通道:
-使用带缓存的通道可以很轻易成倍提高它的吞吐量,某些场景其性能可以提高至10倍甚至更多。通过调整通道的容量,你可以尝试着更进一步的优化其性能。
+使用带缓存的通道可以很轻易成倍提高它的吞吐量,某些场景其性能可以提高至10倍甚至更多。通过调整通道的容量,甚至可以尝试着更进一步的优化其性能。
2 限制一个通道的数据数量并将它们封装成一个数组: