Go 基础讲解笔记

xiaoxiao2021-02-28  84

这是自己学习GO语言基础语法及应用时,的一些笔记与心得,觉得是基础中需要注意,并且熟悉的内容。

Go程序的一般结构:

Go程序是通过 package 来组织的(与Python类似)只有 package 名为 main 的包可以包含 main 函数一个程序 有且仅有 一个main包

部分关键字意义:

package 声明包 (必须在非注释的第一行)import 导入其他包(在要导入的包前面加 _"package"代表只引用不导入)const 声明常量var 声明变量,全局变量必须使用type 声明一般变量,结构,接口struct 表示结构interface 表示接口func 声明函数

可见性规则:

在Go语言中无Java的范围关键词(public、private…..) 所以Go语言中,使用 大小写 来决定 常量、变量、函数、接口….是否能被外部包调用

根据约定 :

函数名 小写 即为 private 不能被其他包调用 如:func my(){} 函数名 大写 即为 public 可以被其他包调用 如: func My(){}

Go基本类型

布尔型:bool 1字节 只能是 true 与 false整形 :int/uint 长度根据操作系统 32/64 uint(无负号)8位整形:int8/uint8 1字节 -128~127/0~255字节型:byte = uint8别名16位整形 32整形 64位整形浮点型:float32/float64 4/6字节 精确小数点后7/15复数:complex64/128保存指针的整数型:uintptr其他:array、string、struct引用:map、slice、chan

注意:

声明变量时 _ 表示移除该变量,用于在函数多返回值有值不需要使用的时候。Go类型转换时,不存在隐式转换,所有类型转换必须显示声明 类型转换只能发生在两种相互兼容的类型之间 如:float = int (a)

指针

GO中保留了指针,直接采用“.”来操作目标对象成员“&”取得变量地址“*”获取变量内容默认值为nil

递增与递减 在GO中,++与–是语句而不是表达式,只能放到变量左边,且不能赋值时使用。

条件判断语句(if)

a:=10 if a:=1 ;a>0 { fmt.Println(a) } fmt.Println(a) 输出: 1 10 由代码可见 if 不需要括号,且可以声明值声明值只在该 if 语句块有效且会覆盖外部,同名的值,外部值在 if 外有效并显示。

循环语句(for)

//for 有三种形式 a:=1 // 1 无条件 for { a++ if a>5 { break//跳出循环 } } // 2 只带条件 for a<3 { a++ } // 3 常用形式 for i:=1;i<3 ;i++ { }

switch语句

a:=1 //正常形式 switch a { case 0: fmt.Println("a=0") case 1: fmt.Println("a=1") default: fmt.Println("000") } //不写条件时,可以使用表达式 //在一个条件满足时,想继续执行,需要显示调用"fallthrough"语句 switch { case a>=0: fmt.Println("a>=0") fallthrough case a>=1: fmt.Println("a>=1") default: fmt.Println("000") }

跳转语句:goto、break、continue

跳转语句,不加标签在跳出最内层循环,加标签可跳出多层循环加标签时,跳转到标签位置。标签区分大小写,不存在标签编会报错break 跳出并结束循goto调整程序执行位置shuzhucontinue 结束本次循环,进入下次循环

数组(array)

格式: var 数组名称 [数组长度] 数据类型 列: var a[2] int长度不同的数组不能相互转换 当不知道数组长度时 […] 编译器会根据结果来确定数组长度 a:= […] int {1,2,3}数组没有的值为默认零值,数组中可以通过“:”为下标位赋值,前面是下标后面是值 列:a:=[…]int {0:1,1:2,10:1},未赋值的地方为默认值。
转载请注明原文地址: https://www.6miu.com/read-41820.html

最新回复(0)