go语言学习手札

go 语言println(“”)必须使用双引号 单引号报错
布尔型:true false
数字类型:int float 
字符串
派生类型:指针,数组,结构化类型,联合体类型
 函数类型,切片,接口,Map,channel类型
c:=10 这种用法只能在函数体内使用
a,b=b,a 交换两个值
按位异或 ^  相当于 两个二进制 位上 相异的结果为1 0110 0011 ^ 1001 0100 结果就是 0000 1000
按位或 |
按位与 &
Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或
者是一个指针。所有给定类型的方法属于该类型的方法集。
作用域:作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。
函数内定义的变量称为局部变量
函数外定义的变量称为全局变量
函数定义中的变量称为形式参数
go语言的数组
var array_name [size] type
var jia[5] string //表示5个长度的 string的类型的数组
go 指针 一个指针变量可以指向任何一个值的内存地址
var ip *int
如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。
go结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。
Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值
delete() 用于删除集合的元素
go 语言声明变量 必须用空格隔开
Go 语言变量名由字母、数字、下划线组成,其中首个字母不能为数字。
三种声明形式: var vname type 
vname = value
   2: var v_name = value
   3: c:=10 :=左侧的变量不应该是已经声明过的,否则会导致编译错误.注:这里只能声明在函数体内
Go 多变量声明 
var var1,var2,var3 type
vname1,vname2,vname3 = v1,v2,v3
var (
a int
b bool 
)
因式分解关键字写法一般用于声明全局变量
go 值类型
所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值:
  引用类型
一个引用类型的变量 r1 存储的是 r1 的值所在的内存地址(数字),或内存地址中第一个字所在的位置
使用操作符 := 可以高效地创建一个新的变量,称之为初始化声明。
a,b = b,a 可以用来交换值
空白标识符 _  也被用于抛弃值,(_,b = 5,7) 其中5 被抛弃 
_ 实际上是一个只写变量,你不能得到它的值。这样做是因为 Go 语言中你必须使用所有被声明的变量,但有时你并不需
要使用从一个函数得到的所有返回值。
 
指明常量类型的叫显示定义,不指明的叫隐式定义
iota 特殊常量 没遇到一次就加1
go的运算符 <- 读作channl in
switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。。
switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break
select是Go中的一个控制结构,类似于用于通信的switch语句。每个case必须是一个通信操作,要么是发送要么是接收。
select随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。一个默认的子句应该总是可运行的。
go 最少有个main函数
函数的声明 告诉了编译器函数的名称,返回类型,和参数
go的内置函数 len()
go语言结构体
结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体有中一个或多个成员。type 语
句设定了结构体的名称。
type book struct {
b1 string
}
book.b1
name:=book{b1,b2,b3}//用于变量的声明
len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数
字,则返回数组中包含的函数个数。
cap()
go语言的数组
var variable_name [SIZE] variable_type
var balance [10] float32
go 的切片
可以用make()函数创建一个切片
var arr []int
var slice1 [] int = make([]int,len)
s:=[] int{1,2,3} 初始化
s1 = s[startIndex:endIndex]
cap() 可以测量切片最长可以达到多少
append()追加新元素
copy() 拷贝切片
Go 语言中 range 
关键字用于for循环中迭代数组(array)、切片(slice)、链表(channel)或集合(map)的元素。在数组和切片中它返回元素的
索引值,在集合中返回 key-value 对的 key 值。
go的语言类型转换
int(string) 强制转换
Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是
实现了这个接口。

发表评论

电子邮件地址不会被公开。 必填项已用*标注