1 Star 0 Fork 0

qzzhang / go-learning

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
types.md 1.30 KB
一键复制 编辑 原始数据 按行查看 历史
qzzhang 提交于 2021-08-17 13:29 . add readme

Go数组

go的数组和C++中的类似,一旦声明长度固定。

// delcalration
var scores [10]int
//
socres := [10]int{1,3,}

// 迭代遍历
for idx, val := range scores {

}

Go切片(Dynamic Array)

// delcaration
sc := []int{1,2}
// cap is 10, len is 0
sc := make([]int, 10)
// cap is 10, len is 4
sc := make([]int, 4, 10) 

Go映射(哈希表)

// map[key_type]value_type
m := map[string]int

Go的struct

声明及赋值

值得一说,Go中没有类以及继承的概念。

// declaration
type Person struct {
    Name string
    Age int
}

// 赋值
zhangsan := Person {
    Name: "zs",
    Age: 22, // note this
}

lisi := Person{}
lisi.Name = "ls"
lisi.Age = 14

wangwu := Person{"ww", 26}

将结构体与函数关联

type Person struct {
    Name string
    Age int
}
// 该方法的调用者为Person类型的变量
func (p *Person) PrintPerson() {
    // print relevant information of person p
}

new函数

p1 := new(Person)
// 与下面等价
p1 := &Person{}   

套娃(组合)

type Person struct {
    Name string
}

func (p *Person)Introduce() {
    println("I am: " + p.Name)
}

type Worker struct {
    *Person
    JobType string
}

w := &Worker {
    Person: &Person{"zhangsan"},
    JobType: "programmer",
} 
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/qz_zhang/go-learning.git
git@gitee.com:qz_zhang/go-learning.git
qz_zhang
go-learning
go-learning
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891