首页 / GO / go基础系列 第一章 go基础语法
go基础系列 第一章 go基础语法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了go基础系列 第一章 go基础语法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2579字,纯文字阅读大概需要4分钟。
内容图文
![go基础系列 第一章 go基础语法](/upload/InfoBanner/zyjiaocheng/1320/fbd3abd6cda941da8d81b2ce65e96235.jpg)
0.前言
1. go定义变量的几种方式
2. go内建变量类型
3. 常量的定义
4. go枚举
5. go的if语句
零. go语言的换行
go语言对换行很有讲究, 如果想换行,必须有一个逗号, 否则就会报错
变量p编译都不通过, 因为最后的}换行了, 换行必须要有逗号. 写成pp的样子就可以了
一. go定义变量的集中方式
1. go一旦定义就有一个默认的值
具体每一种类型的默认初始化值是什么?
2. go如何定义变量初始化
第一种方式: 只声明, 不赋值
var int a; var string b
第二种方式: 变量会自动识别变量类型
var a, b, c, d = 1, "您好", false, 10.1
第三种方式: 通过 := 的方式赋值
a, b := "我", 10
注意:
- 使用:= 赋值运算符, 至少要有一个变量是未定义过的.
- 在函数外面定义的变量不可以使用:=赋值运算符. 在函数外面必须要有var, 或者 func关键字
- 在函数外定义的变量不是全局变量, 他是包变量, 在包内部共享的变量.
- go没有全局变量的说法
第四种方式: 使用var()
var ( a = 10 b = "您好" )
二. go内建变量类型
- bool, string
- (u)int, (u)int8, (u)int16, (u)int32, (u)int64, uintptr
- byte, rune.
- float32, float64, complex64, complex128
int类型的内建变量有11中
- 不带u的是有符号变量. 不带u的有符号变量还是有两类
- 有长度指定的. int8, int16, int32, int64是有长度的. 在go中没有short, long类型的, 就通过int的位数来定义
- 无长度指定的. int是无长度的,他的长度随操作系统不同而不同. 32位操作系统,int是32位的, 64位操作系统, int是64位的.
- 带u的是无符号变量
- uintptr是int类型的指针. 他是无符号的. 指针的长度也是跟着操作系统来的.
rune类型是go语言的char类型
- rune是32位的. 占4个字节. unicode中一个字符是2字节, 在utf-8中一个字符是3字节, 所以, rune采用了32位的4字节. rune和byte都是可以和int类型互相转化的
float类型
- 浮点数类型没有float和double. 直接通过位数来指定. float32就是32位的浮点数. float64就是64位的浮点数
complex类型
- complex是复数的意思. 这里指定了复数的构成. 复数直接就作为了一个内嵌变量的类型
- 复数有实部和虚部, complex64就是实部和虚部都是32位, complex128就是实部和虚部都是64位. 这样可以处理比较复杂的数据计算.
三. 常量的定义
方式一: 使用const定义
const aa = 3
方式二: 如果有多个变量, 可以使用const()定义
const ( aa = 10 bb = 100 )
备注: 1. go语言中的常量一般不全部大写,因为在go中, 大小写是有含义的. 就像普通变量的命名规则就可以了
四. go枚举类型
1. 定义一个枚举
func enums(){ const ( cpp = 1 java = 2 php = 3 go = 4 python = 5 ) fmt.println(cpp, java, php, go ,python) }
打印结果: 1, 2, 3, 4, 5
2. 使用自动增长值的方式
func enums(){ const ( cpp = iota _ php go python javascript ) fmt.println(cpp, javascript, php, go ,python) }
打印结果: 1, 6, 2, 3, 4
3. 复杂的自增长类型
func enums(){ const ( b = 1<<(10* iota) kb mb gb tb pb ) fmt.println(b, kb, mb, gb ,tb, pb) }
打印结果:1 1024 1048576, 1073741824, 1099511627776, 1125899906842624
备注: [1<<(10 * iota)的含义时: 如果: iota=0, i* 2的0次方, iota=1, 1*2的10次方. 如果iota=2, 就是1*2的20次方, 一次类推]
五. go条件语句
1. if语句
这里和其他语言都基本类似, 有一点, 可以将查询返回的结果和if语句写在一行. 类似下面这样
2. switch语句
-
- switch语句其他语言不一样的地方时. 每一个case后面不用显示的写break. go语言默认会在每一个case后面加上break. 如果不想break, 需要显式的加上fallthrough
- switch语句后面可以没有表达式, 直接在case里判断
例如:
package main import "fmt" func useSwitch(grade int) { switch { case grade < 0 || grade > 100: panic("分数异常") case grade < 60: fmt.Println("不及格") case grade >= 60 && grade <= 80: fmt.Println("良好") case grade > 80 && grade <= 100: fmt.Println("优秀") } } func main() { useSwitch(40) useSwitch(65) useSwitch(85) useSwitch(100) useSwitch(-20) }
原文:https://www.cnblogs.com/ITPower/p/12004705.html
内容总结
以上是互联网集市为您收集整理的go基础系列 第一章 go基础语法全部内容,希望文章能够帮你解决go基础系列 第一章 go基础语法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。