GO

142 阅读2分钟

Go是一种编译型语言,结合了解释型语言的优点 (如调试效率,跨平台),动态类型语言的优点 (如开发效率),以及静态类型的优点 (如安全性); Go是静态类型语言,类型系统没有层级,因此无需在类型关系定义上耗费过多时间; Go是垃圾回收型的语言,并为并发执行与通信提供了基本的支持; Go目标是要成为一种现在的系统语言,不过目前更多用来构建支持高性能高并发web服务。 值类型:数值类型,bool,string,数组,struct结构体 变量直接存储值,内存通常在栈中分配, 修改值, 不会对源对象产生影响 引用类型:指针,slice切片,管道chan,map,interface 变量存储的是一个地址,这个地址对应的空间才真正存储数据值,内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC来回收,同时,当地址指向的数据值改变时,会对源对象产生影响。 在go语言中转换数据类型需要显式转换
将float64类型转换为float32类型

var n1 float64 = 3.2 n2 := float32(n1) 指针变量存储的是一个地址,这个地址指向的空间存的才是值
前面带*表示ptr是一个指针
使用&可以查看num的指针值
使用&ptr可以直接修改num的值

var ptr *int = &num &ptr = 2 表达式可以是变量或函数
case相当于if
当有对个表达式时,是以连接各个表达式
default先当与else
swtch后面也可以什么都不写
fallthrough是swich穿透,默认穿透一层,相当于满足其条件执行完语句块后还可以执行其他满足条件的语句块。 break是跳出循环执行循环后面的语句,但是break默认只能跳出一层循环,所以需要在循环前加上lable标签,使用break lable1表示跳出哪个循环
continue和break一样只能跳出一个循环,不同的是continue是跳出本次循环,继续下一次循环 go查找路径默认从GOPATH目录下的src下去找
包的package可以自定义
如果需要函数或变量名让其他包使用,首字母必须大写
使用时先导包 : import 自定义名 "路径"