go语言定义变量/类型的方式

tree2013 · · 861 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1、数组

var array1 = [5]int{1, 2, 3}
var array2 = [...]int{6, 7, 8}
var array3 [5]int
array4 := [5]int{1, 2, 3}
array5 := new([3]int)

2、切片

切片可以通过数组构建,这里不讨论这种方式

var slice1 = []int{9, 10, 11, 12}
slice2 := make([]int, 5)

可以发现[]中有数字的是固定长度的数组,没有数字的表示切片

3、map

// 先声明map
var m1 map[string]string
// 再使用make函数创建一个非nil的map,nil map不能赋值
m1 = make(map[string]string) 

// 直接创建
m2 := make(map[string]string)

// 直接创建
// 初始化 + 赋值一体化
m3 := map[string]string{
    "a": "aa",
    "b": "bb",
}

//创建+初始化

var m4 map[string][string]= make(map[string]string)

map必须初始化才能使用,否则会报错

5、结构体

a:=new(user)//返回的是实例化的对象的指针
b:=&user{}//返回的是实例化的对象的指针
c:=user{}
var d user = user{}

//使用&T{...}创建struct,结果为指针类型
var s1 *Student = &Student{102, "John", "Nanjing Road", 19}
//使用T{...}创建struct,结果为value类型
var s2 Student = Student{103, "Smith", "Heping Road", 20}

type student struct {
	name string
	age  int
}

func main() {
	s1 := new(student)
	s2 := &student{"b", 1}
	s3 := student{"c", 3}
	var s4 student = student{"d", 4}
	var s5 *student = &student{"d", 4}
	//&{ 0} &{b 1} {c 3} {d 4} &{d 4}
	fmt.Println(s1, s2, s3, s4, s5)
}

看输出就明白了。


有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:tree2013

查看原文:go语言定义变量/类型的方式

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

861 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传