一、定义赋值
定义一个int的
var myVar int
定义多个
var myVar, myVar1, myVar2 int
定义并赋予初始值
var myVar int = 1
定义多个并赋予初始值
var myVar, myVar1, myVar2 int = 1, 2,3
麻烦是吧。
其实可以简单:
var myVar, myVar1, myVar2 = 1, 2,3
但是还可以简单:
myVar, myVar1, myVar2 = 1, 2, 3
另外可以每个变量的类型可以不一样的哦
myVar, myVar1, myVar2 = 1, 2, “a”
但是这个方式不能用在函数外。 在函数外全局不能不加上var。不过了还得记住了在函数内定义的变量必须得使用否则编译不能通过。
二、数据类型
数字类型:
有通用的int 和float型,
int8 ,int16 ,int32 ,int64
byte ,uint8 ,uint16 ,uint32 ,uint64 (无符号型的)
而上面定义的int是与平台相关的。byte是unit8的别名是一样的类型。
这里要记住int 和 int16 int32 不能随便转换,所有的不同类型都不能互相赋值,必须得自己强制转换。
例如:
package main
import "fmt"
var myVar, myVar1, myVar2 int = 1, 2,3
func main() {
myV, myV1, myV2 := 1, 2,3
//var v1 int32 = 32
var v2 int64 = 34
v2 = int64(myV)
fmt.Printf("%d",v2)
fmt.Printf("%d",myV)
fmt.Printf("%d",myV1)
fmt.Printf("%d",myV2)
fmt.Printf("hello, world\n")
}
字符串:
类型名string,在go中都是用的utf8字符集,字符串不能直接修改。要修改如下:
s
:= "hello"
c := []byte(s) // 将字符串 s 转换为 []byte 类型
c[0] = 'c'
s2 := string(c) // 再转换回 string 类型
fmt.Printf("%s\n", s2)
布尔型:
类型名bool,值是true或false,默认为false。
复合数据类型struct,array,slice,map
struct:
type AStruct struct {
X int
Y int
}
myStruct := AStruct{X:1, Y:2}
myStruct.X = 100
myStruct.Y = 200
基本和c的一样 就是访问的时候用的是的是“.”
数组array
数组定义:var by [32] byte
var stru [20] struct {x, y int32}
var [3][5] int //多维数组3行5列
这里先记住,go提供的数组是不能改变长度的,另外函数传递的时候传得是值,也就是说会被复制一份。
切片slice
看到上面是不是觉得数组用着不方便?不要紧有slice
定义:
1.从数组中创建一个数组切片
var mySlice [] int = myarray[1:] //数组从第一个元素开始所有的元素
var mySlice2 [] int = myarray[:6] //数组从开始到第六个元素开始所有的元素
var mySlice3 [] int = myarray[3:6] //数组从第三个元素到第六个元素
2.直接创建
mySlice := make([]int 3) //3个元素,初始值为0
mySlice2 := make([]int 3, 6) //3个元素,初始值为6
mySlice3 := [] int{1,2,3,4,5,6} //创建并赋值
map(可以说是hash或者说是字典)
声明
var mapMap map[string] mytype
函数创建
myMap = make(map[string] mytype, 100) //创建100个
赋值
myMap[“123”] = mytype{1,3,4}
删除
delete(myMap, “123”)
就这样,完!
有疑问加站长微信联系(非本文作者)