别名 对象,类似其他语言面向对象
与传统面向对象变成比,没有传统意义上的继承、方法重载、构造和析构函数、this指针
golang:有继承、封装,多态;继承通过匿名字段实现。
若子结构体与父结构体不存在相同的属性或方法,则可简写忽略子结构体名
如u`ser.admin.auth`可以写为`user.auth`
> 创建结构体的方法
```
package main
import (
"fmt"
)
type user struct {
Age int
Name string
}
func (u user) toString() {
fmt.Printf("Name=%s Age=%d\\n", u.Name, u.Age)
}
func main() {
u1 := user{
Age: 100,
Name: "u1",
}
u1.toString()
u2 := user{100, "u2"}//需要按顺序
u2.toString()
u3 := &user{
Age: 100,
Name: "u3",
}
u3.toString()
u4 := &user{50, "u4"}
u4.toString()
}
```
- 数据类型
- 数组array
- 切片slice
- 字符串string
- map
- 结构体struct
- 方法func
- 匿名结构体(继承)
- 字段别名
- 接口interface
- 常量
- 基础语法
- 循环for
- 遍历
- 函数func
- defer
- 异常处理error
- 访问范围
- 包
- 类型断言
- 文件
- 打开文件
- 读取文件
- 写文件
- 判断是否存在
- 拷贝文件
- JSON
- 序列化
- 反序列化
- 命令行
- 杂项
- Windows下配置加速
- 相关链接
- 占位符
- 随机数rand
- 单元测试
- goroutine
- 并发和并行
- 协程和主线程
- MPG模式
- 设置CPU数量
- 全局互斥锁
- 管道
- 示例1
- 示例2
- select
- 异常捕获
- 反射
- 示例
- 示例-改变值
- 网络编程
- TCP编程
- 示例一
- redis