### slice ------------ 1、检查一个slice是否为空,不能用slice == nil判断,而应该使用len(slice) == 0。因为slice为空的时候,slice不一定是nil。 2、两个slice不能用==判断是否相等。 ### 数组 ------------ 1、数组是具有固定的长度且拥有0个或多个相同数据类型元素的序列。 2、数组长度是数组类型的一部分,所以[3]int 和[4]int 是两个不同的数组类型。 #### 字符串 ------------ 1、字符串可以用数组索引的方式访问元素,但是要注意arr[i...
1、Go程序在main goroutine停止时结束,即使其他goroutine尚未完成其工作; 2、Go不保证何时在goroutine之间切换,或者它将持续运行一个goroutine多长时间,多个goroutine是随机切换运行的; 3、函数返回值不能在go语句中使用,部分原因是当调用函数试图使用它时,返回值还没有准备好。如果需要goroutine中的值,则需要将其传递给一个channel,以便将该值发送回来;
| | ||||||| | :------------: | :------------: | :------------: | :------------: | :------------: | :------------: | :------------: | :------------: | | ![](http://images.kuryun.com/blog/typecho/1641260481.png)[微笑] | ![](http://images.kuryun.com/blog/typecho/1641260529.png) [撇嘴] | ![](http...
1、在Go中,数据被封装在包内,使用未导出的包内变量和结构字段; 2、未导出的变量、struct字段、函数、方法等可以被相同包中的导出的函数和方法访问。 3、getter无需get前缀,setter保留set前缀(主要为了与getter区分开);如果想要外部可访问,则方法首字母大写。 举例如下: ```go package person type Person struct { Name string Age int } func (p *Person) Name() string { return p.Name } func (p *Per...
一、声明变量的几种方式: 1、标准格式 ```go var a int ``` 2、批量声明 ```go var ( a int b string c []float32 d func() bool e struct { x int } ) ``` 3、简短格式 ```go //名字 := 表达式 a := 1 ``` 简短模式(short variable declaration)有以下限制: 1)定义变量,同时显式初始化。 2)不能提供数据类型。 3)只能用在函数内部。 和 var ...
单例类也是一个类,只不过它有些特殊,单例模式有以下3个特征(原则): 1、单例类只能有一个实例对象; 2、单例类的对象必须由单例类自行创建; 3、单例类对外提供一个接口访问该单例的实例。 那么我们来看看单例类是如何由普通类“演变”而来的吧! ------------ 我们先定义一个普通类Beijing: ```cpp class Beijing { public: string title; void show() { cout