一个隐含实现导致的问题:
由于Go的interface的实现是隐含的,只要函数一致就会自动匹配。
先看一下代码:
```
package main
Go 中进行单元测试非常方便,官方提供一套 UT 测试框架。
在 Go 语言基础学习过程中,确实如 Google 介绍文章写得那样,Go 践行了一系列改进特性,下面就列举一些发现的特性。
len(“hello 你好”)的迷惑:
Go中的string是以UTF-8编码,底层实现是byte数组,想要输出字符串长度时,如果包含了非Ascii:
1 |
|
因为len计算了所有byte数量,而一个中文占3byte。
redigo可以为Go提供操作Redis的API,其本质和手动在”redis-cli”是一样的,只是提供了一些方便的功能。
在C++中stl算法中提供了非常好用的swap函数,而Go中目前还没有。
虽然swap的函数很容易通过^
实现,但是也要三行代码。
1 |
|
Redis 命令参考:http://redisdoc.com
Go的map对标C++中的unordered_map<T1,T2>(底层hash),在Go中目前并没有类似C++STL中的map<T1,T2>(底层红黑树)。在使用多维map时,遇到一个坑…
goroutine 是 Go 最核心的特性。为什么它可以比多线程效率更高?底层的实现机制是怎样的?