当前位置:网站首页>2.Golang基础知识
2.Golang基础知识
2022-07-07 13:11:00 【放纵fly】
目录
1. 标识符
标识符:就是起名字,组成规则如下
1.标识符由字母,数字和下划线组成
2.开头不能是数字
3.标识符区分大小写
2.关键字
1.关键字就是内置的字符,不能作为标识符使用
2.共25个关键字和36个预定标识符
3.不用记,慢慢用就熟悉了
3.命名规范(建议)
1.Go是区分大小写的语言
2.标识符在作为外部包引用时,首字母要大写
标识符要不被外包可见时,首字母小写
3.包名称:
任何一个go文件都可以作为包被引用,
在命名本文件包名(package 包名)时,尽量保持与目录一致,或者有意义
4.go文件命名:小写 + 下划线
5.结构体命名:驼峰命名法
6.接口命名:以"er"结尾
7.常量命名:所有字母大写 + 下划线
8.单元测试:文件命名以"_test.go"结尾,函数名以"Test"开头
4.变量
1.声名的变量不能重复,而且声明后必须使用
2.外部声明变量:var 变量名 变量类型
3.批量变量声明:
var(
name string
sex string
age int
)
4.变量初始化:用 = 赋值
var name = "fly"
5.变量类型推导:指在初始化时,不用声明数据类型,go内部会自动推导
var(
name = "fly"
age = 18
sex = "man"
)
6.初始化多个变量:用逗号隔开,一一对应赋值
var name, age, sex = "fly", 18, "man"
7.短变量声明:指在函数内部声明的变量,可以不用写var,用":="
fun main() {
name := "zcy"
age = 18
sex = "man"
}
8.匿名变量:在接收变量做参数时,用不到的变量用下划线"_"代替
package main
import "fmt"
func getNameAge() (string, int) {
return "fly", 18
}
func main() {
name, _ := getNameAge()
fmt.Printf("name: %v\n", name)
}
9.注释:
单行注释:双斜杆// ctrl + /
多行注释:/* */ alt + shif t+ a
5.常量
1.概念:常量是编译阶段确定下来就,不可改变的
2.常量定义:使用关键字 const
用法:const 常量名 类型 = 常量值
3.因为定义常量时就必须赋值,所以常量类型可以省略
4.批量定义常量
const (
width = 100
height = 100
)
5.批量定义常量时,如果后面常量省略赋值,默认与前一变量一致
const (
hight = 100 // 100
weidth // 100
name = "fly" // fly
age // fly
)
6.连续定义(多重赋值):
const width, height = 100, 100
7.iota
(1)iota是可以被编译器修改的常量,默认为0,每次调用+1,遇到const时重置为0
(2)两个常量都定义iota,两者之间有"_"或普通常量,iota的值依旧会跳跃
const (
a = iota // 0
_ // 遇到"_",iota依旧+1,此时=1
b = iota // 2
c = 1 // 1 遇到普通变量,iota依旧+1,此时=3
d = iota // 4
)
6.数据类型分类
1.布尔类型
2.数字类型(整型,浮点型)
3.字符串类型(固定长度)
4.派生类型(指针类型,数组类型,结构化类型,Channel类型,函数类型,切片类型,接口类型(interface),Map类型)
7.基础补充
1.判断if
if 条件 {
函数体
} else {
函数体
}
2.循环for
for 初始状态; 条件; 状态变化 {
函数体
}
3.且:&&
4.打印变量
fmt.Println(变量)
5.格式打印
fmt.Printf("%v\n", 变量)
区别:Println自带换行
5.打印符号
打印数据:%v
fmt.Printf("%v\n", "FLY") // FLY
打印数据类型:%T
fmt.Printf("%T\n", "fly") // string
打印数字类型整型大小:%dB
fmt.Printf("%dB\n", 18) // 18B
8.布尔类型
true,false
作用:在条件判断,循环,逻辑表达等,用作判断真假
注意:golang中的布尔类型,不能用数字(0或非0)表达真假
package main
import "fmt"
func main() {
age = 200
// 错误
if age {
fmt.Println("错误")
}
// 正确
if age>1 {
fmt.Println("正确")
}
}
9.数字类型
1.囊括:整型与浮点型,原生复数,位运算用的是补码
2.整型:int整型,uint无符号整型,uintptr固定长度存放指针的无符号整型
3.int与uint在32位操作系统上占4个字节,在64位操作系统上占8个字节
4.go中类型的大小都是固定的(了解),其中int型是计算最快的一种
5.浮点型:float32与float64(补充:计算机中浮点数都是不精确的!)
(1)整型零值是0,浮点型零值是0.0
(2)格式化打印浮点型:
全打印:%f
取两位打印:%.2f
6.进制转换 进制格式输出
十进制:%d
二进制:%b
八进制:%o
十六进制:%x 或%X
7.复数:
32位:complex64
64位:complex128
边栏推荐
- [server data recovery] a case of RAID data recovery of a brand StorageWorks server
- 【服务器数据恢复】戴尔某型号服务器raid故障的数据恢复案例
- 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
- MySQL installation configuration 2021 in Windows Environment
- Unity's ASE achieves full screen sand blowing effect
- 【原创】一切不谈考核的管理都是扯淡!
- 什么是pv和uv? pv、uv
- Ctfshow, information collection: Web3
- Cocoscreator resource encryption and decryption
- @ComponentScan
猜你喜欢
[server data recovery] data recovery case of raid failure of a Dell server
[today in history] July 7: release of C; Chrome OS came out; "Legend of swordsman" issued
Unity's ASE realizes cartoon flame
JSON parsing instance (QT including source code)
Unity's ASE achieves full screen sand blowing effect
【搞船日记】【Shapr3D的STL格式转Gcode】
安恒堡垒机如何启用Radius双因素/双因子(2FA)身份认证
[机缘参悟-40]:方向、规则、选择、努力、公平、认知、能力、行动,读3GPP 6G白皮书的五层感悟
Niuke real problem programming - Day17
Jetson AGX Orin CANFD 使用
随机推荐
知否|两大风控最重要指标与客群好坏的关系分析
Briefly describe the working principle of kept
Bye, Dachang! I'm going to the factory today
Stream learning notes
[机缘参悟-40]:方向、规则、选择、努力、公平、认知、能力、行动,读3GPP 6G白皮书的五层感悟
MySQL bit类型解析
Classification of regression tests
CTFshow,信息搜集:web12
@Introduction and three usages of controlleradvice
Infinite innovation in cloud "vision" | the 2022 Alibaba cloud live summit was officially launched
Bits and Information & integer notes
Niuke real problem programming - day18
[today in history] July 7: release of C; Chrome OS came out; "Legend of swordsman" issued
Ctfshow, information collection: web2
FFmpeg----图片处理
[server data recovery] a case of RAID data recovery of a brand StorageWorks server
拜拜了,大厂!今天我就要去厂里
什么是pv和uv? pv、uv
MySQL bit type resolution
全日制研究生和非全日制研究生的区别!