GO语言基础语法|青训营笔记(1)

88 阅读3分钟

GO语言基础语法|青训营笔记

基础语法

 关键词
 break        default      func         interface      select
 case         defer        go           map            struct
 chan         else         goto         package        switch
 const        fallthrough  if           range          type
 continue     for          import       return         var

数据类型

整形

类型描述
int32位操作系统上就是int32,64位操作系统上就是int64
uint8无符号 8位整型 (0 到 255)
uint16无符号 16位整型 (0 到 65535)
uint32无符号 32位整型 (0 到 4294967295)
uint64无符号 64位整型 (0 到 18446744073709551615)
int8有符号 8位整型 (-128 到 127)
int16有符号 16位整型 (-32768 到 32767)
int32有符号 32位整型 (-2147483648 到 2147483647)
int64有符号 64位整型 (-9223372036854775808 到 9223372036854775807)
uint32位操作系统上就是uint32,64位操作系统上就是uint64
uintptr无符号整型,用于存放一个指针

浮点型

类型float32 float64

复数

 var c1 complex64
 c1 = 1 + 2i

布尔值

 布尔类型变量的默认值为false。  Go 语言中不允许将整型强制转换为布尔型.  布尔型无法参与数值运算,也无法与其他类型进行转换

字符串

 str1:="hello world"

字符串方法

方法介绍
len(str)求长度
+或fmt.Sprintf拼接字符串
strings.Split分割

运算符

单目运算符 > 算术 > 位移 > 关系 > 位 > 逻辑 > 赋值

算数运算符
运算符描述
+相加
-相减
*相乘
/相除
%求余

关系运算符

运算符描述
==检查两个值是否相等,如果相等返回 True 否则返回 False。
!=检查两个值是否不相等,如果不相等返回 True 否则返回 False。
检查左边值是否大于右边值,如果是返回 True 否则返回 False。
>=检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。
<检查左边值是否小于右边值,如果是返回 True 否则返回 False。
<=检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。

逻辑运算符

运算符描述
&&逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。
逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。
!逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。

位运算符

运算符描述
&参与运算的两数各对应的二进位相与。 (两位均为1才为1)
参与运算的两数各对应的二进位相或。 (两位有一个为1就为1)
参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 (两位不一样则为1)
<<左移n位就是乘以2的n次方。 “a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。
>>右移n位就是除以2的n次方。 “a>>b”是把a的各二进位全部右移b位。

赋值运算符

运算符描述
=简单的赋值运算符,将一个表达式的值赋给一个左值
+=相加后再赋值
-=相减后再赋值
*=相乘后再赋值
/=相除后再赋值
%=求余后再赋值
<<=左移后赋值
>>=右移后赋值
&=按位与后赋值
=按位或后赋值
^=按位异或后赋值

流程控制

if—else

 if 表达式1 {
     分支1
 } else if 表达式2 {
     分支2
 } else{
     分支3
 }

for

 for 初始语句;条件表达式;结束语句{
     循环体语句
 }

switch case

Go语言规定每个switch只能有一个default分支。

一个分支可以有多个值,多个case值中间使用英文逗号分隔。

数组定义

 var name [num] T
 var a [3]int
 var b [4]string

数组初始化

 var testArray [3]int//数组会初始化为int类型的零值
 var numArray = [3]int{1, 2}//使用指定的初始值完成初始化
 var cityArray = [3]string{"aaa", "bbb", "ccc"} //使用指定的初始值完成初始化

切片 slice

定义

var name []T

 var a []string//声明一个字符串切片
 var b = []int{}//声明一个整型切片并初始化

使用make函数构造切片

 mysli:=make([]T, size, cap)