第三章、Go语言基础语法
第一、Golang概述
1、Go语言结构
1.1 Go语言的基础组成部分:
包声明、引入包、函数、变量、语句&表达式、注释
2、Go语言开发注意事项
a、Go源文件以"go"为扩展名
b、Go应用程序的执行入口是main()函数
c、Go语言严格区分大小写
d、Go方法有一条条语句构成,每个语句不需要加分号(Go语言会在每行后自动加分号)
e、Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一行,否则报错
f、Go语言定义的变量或者引用的包如果没有使用到,代码不能编译通过
g、大括号成对出现,缺一不可
h、源程序默认UTF-8编码
i、定义函数以func开头,函数体开头的"{"不能换行
3、Go语言转义字符(Escape character)
a、\t :一个制表符,实现对齐的功能
b、\n :换行符
c、\\ :一个\
d、\" :一个"
e、\r :一个回车,fmt.Println("天龙八部雪山飞狐\r张飞")
4、Go语言代码风格
4.1 Go官方推荐使用行注释来注释整个方法和语句
4.2 运算符两边习惯性各加一个空格,比如:2 + 3 * 5
4.3 方法体后面的“{”不能换行,如下:
5、Golang官方编程指南
5.1 官方网站:https://golang.org
5.2 Go语言中文文档:https://studygolang.com/pkgdoc
5.3 Golang的包和源文件和函数的关系简图
Golang中调用一个函数的方式:import引入包名, 再使用包名.函数的方式调用函数
知识回顾
1、Go语言的SDK是什么?
SDK就是软件开发工具包
2、Golang环境变量配置及其作用
GOROOT:指定go sdk安装目录;GOPATH:golang的工作目录,我们项目的源码都放在GOPATH指定的目录下
3、Golang程序的编写、编译、运行步骤是什么?
编写:就是编写源码
编译:go build 源码 -> 生成一个可执行文件
运行:1.对可执行文件运行 xx.exe 2.go run 源码
4、Golang程序的编写规则
4.1 go文件后缀以.go结尾
4.2 go程序区分大小写
4.3 go语句后不需要带分号";"
4.4 go定义的变量或者import包必须使用,如果没有使用就会报错
4.5 go中不要把多条语句放在同一行,否则报错
4.6 go中的大括号风格如下,不能换行
第二、Golang变量
1、Golang变量
变量:使用一个名称来绑定一个内存地址,该内存地址中存放的数据类型由定义变量时指定的类型决定,该内存地址里面存放的内容可以改变。
局部变量:在函数或方法内部定义使用的变量
全局变量:在函数外部定义的变量
变量定义了必须使用,不然编译会出错,但是全局变量定义了不使用是不会报错的
变量三要素:变量名、值、数据类型
1.1 变量使用步骤
先声明变量、再给变量赋值、再使用变量
1.2 变量使用的三种方式
注意: 使用:=定义变量(:=方式只能在函数内部使用,并且左边的变量不应该是已经声明过的),此类声明变量的方式为短类型声明
1.3 多变量声明
1.4 声明全局变量(在函数外部声明的变量就是全局变量)
1.5 变量使用注意事项
1.5.1 变量在某区域数据值可以在同一类型范围内不断变化
1.5.2 变量在同一作用域(在同一个函数或者代码块内)不能重名
1.5.3 变量三要素:变量名、变量类型、变量值
1.5.4 Golang的变量如果没有赋初值,编译器会使用默认值,比如:int默认值0,string默认值为空串,小数默认为0,
1.5.5 声明变量、初始化变量、给变量赋值操作
声明变量:var i int var num float32
初始化变量:var a int = 50 var b = 400
给变量赋值:比如先声明了变量var m int ,然后再给值 m = 100,这就是给变量赋值
1.6 匿名变量
2、程序中+号的使用
2.1 当+号左右两边都是数值类型时候,则做加法运算
2.2 当+号左右两边都是字符串时候,则做字符串拼接
第三、Golang常量
1、Golang常量简介
常量:使用一个名称来绑定一个内存地址,该内存地址里面存放的内容不可以改变,Go中常量分为布尔型、字符串型、数值型(整数型、浮点型和复数),使用const关键字定义常量
1.1 常量基本介绍
常量的定义格式:
const identifier [type] = value 你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。
const b string = "abc" //显式类型定义
const a,c = "abc","bcd" //隐式类型定义
常量还可以用作枚举:
const(
Unhnow = 0 //性别未知
Female = 1 //女性
Male = 2 //男性
)
常量可以用len(), cap(), unsafe.Sizeof()常量计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过:
iota,特殊常量,可以认为是一个可以被编译器修改的常量。
在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。
iota 可以被用作枚举值:
第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0, b=1, c=2
可以简写为如下形式:
注意细节:
细节1:
细节2:
细节3:
细节4:
细节5:
细节6:
总结::
iota,特殊常量,可以认为是一个可以被编译器修改的常量;在每一个const关键字出现时,被重置为0;然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1; “const声明中,每新增一行代码行常量声明iota计数一次“;细节4中某一行声明了没有赋值,默认和上一行一致;一行中出现多个iota,当前行的iota只加1
案例演示:
第一行:1左移0位=1; 第二行:1左移10位 = 2的十次方 = 1024;...
第四、复数类型
1、复数类型基本介绍
Go语言两种复数类型,分别是complex64、complex128,复数在计算机里面使用两个浮点数表示,一个表示实部一个表示虚部。complex64是由两个float32构成,complex128是由两个float64构成,复数的字面量表示和数学表示法一样
complex64 32位实数和虚数 (复数)
complex128 64位实数和虚数 (复数)
第五、Go词法单元
1.3.1 token
token是构成源程序的基本不可分割的单元,编译器编译程序的第一步就是将源程序分割为一个独立的token,这个过程叫词法分析,Go语言的token可分为关键字、标识符、操作符、分隔符和字面常量等。
Go的token分隔符有两类,一类是操作符还有一种自身没有特殊含义仅用来分隔其他token,被称为纯分隔符。
sum := a+b “:=”“+”既是分隔符也是token,所以这个简单的语句被分为5个token: "sum"、“:=”、“+”、“a”、“b”
纯分隔符:空格、制表符、换行符、回车符,多个相邻的空格或制表符会被编译器看做分隔符处理。