Go语言基础03

常量的定义

-常量的值在编译时就已经确定
-常量的定义格式与变量基本相同
-等号左侧必须时常量活着常量表达式
-常量表达式中的函数必须时内置函数

常量的初始化规则与枚举

-在定义常量时,如果不提供初始值,则表示将使用上行的表达式
-使用相同的表达式不代表具有相同的值
-iota是常量的计数器,从0开始,组中每定义1个常量自动递增1
-通过初始化规则与iota可以达到枚举的效果
-每遇到一个const关键字,iota就会重置为0

运算符

Go中的运算符均是从左至右结合

优先级(从高到低)
^ ! (一级运算符)
* / % << >> & &^
+ - | ^ (二级运算符)
== != < <== >= >
<- (专用于channel)
&&
||

指针

Go虽然保留了指针,但与其他编程语言不同的是,在Go当中不支持指针预算以及
“->”运算符,而直接采用“.”选择符来操作指针目标对象的成员
操作符 & 取变量地址,使用“*”通过指针间接访问目标对象
默认值为nil而非null
递增递减语句
在GO当中,++与–是作为语句而不是作为表达式

if判断语句

-条件表达式没有括号
-支持一个初始化表达式(可以是并行方式)
-左大括号必须和条件语句或else在同一行
-支持单行模式
-初始化语句中的变量为block级别,同时隐藏外部同名变量
-1.0.3版本中的编译器BUG

for循环语句

-GO只有for一个循环语句,但支持3种格式
-初始化和步进表达式可以是多个值
-条件语句每次循环都会被重新检查,因此不建议在条件语句种
使用函数,尽量提前计算好条件并以变量或常量代替
-左大括号必须和条件语句在同一行

第一种方式: for{

}//死循环

第二种方式: for a<=3{

                  a++

}

第三种经典方式: for i:=1 ; i<5 ; i++ {

             fmt.Println("啦啦啦")

}

选择语句switch

-可以使用任何类型或表达式作为条件语句
-不需要写break,一旦条件符合自动终止
-如希望继续执行下一个case,需使用fallthrough语句
-支持一个初始化表达式,(可以是并行方式),右侧需要跟分号
-左大括号必须和条件语句在同一行

跳转语句goto,break,continue

-三个语法都可以配合标签使用 标签的定义: 标签名:
-标签名区分大小写,若不是用会造成编译错误
-Break与continue配合标签可用于多层循环的跳出
-Goto是调整执行位置,与其他2个语句配合标签的结果并不相同

数组Array

-定义数组的格式:var 数组名 [n(要求大于等于0)] 数组类型
var a [2] int //默认两个0
a := [2]int{1,1}//简写如果第二个没有写第二个元素就是0
{19:1}//代表吧19个索引的元素赋值为1
[…]int{1,2,3,4}//代表自动判断数组长度
-数组长度也是类型的一部分,因此具有不同长度的数组为不同类型
-注意区分指向数组的指针和指针数组
指向数组
funcmain(){
a:=[…]int{9:1}
varp*[10]int=&a
fmt.Println(p)
}
指针数组
funcmain(){
x,y:=1,2
a:=[…]*int{&x,&y}
fmt.Println(a)
}

-数组在Go种为值类型
-数组之间可以用== 或 !=进行比较,但不可以使用《或》
-可以使用new来创建数组,此方法返回一个指向数组的指针
-go支持多维数组

猜你喜欢

转载自blog.csdn.net/www294993741/article/details/82344942