GO语言学习——基础复习回顾
内容回顾
GO安装
$GOPATH:你写GO代码的工作区,保存你的GO代码的
GOROOT:GO exe所在的地方
GOPATH/bin添加到环境变量:go install 命名会把生成的二进制可执行文件拷贝到GOPATH/bin
Go命令
go build:编译Go程序
go build -o "xx.exe":编译成xx.exe文件
go run main.go:像执行脚本一样执行main.go文件
go install :先编译后拷贝
GO语言文件基础语法
存放Go源代码的文件后缀名是.go
文件第一行:package关键字声明包名
如果要编译可执行文件,必须要有main包和main函数(入口函数)
// 单行注释
/*
多行注释
*/
GO语言函数外的语句必须以关键字开头
函数内部定义的变量必须使用
变量
3种声明方式:
- var name string
- var name2 = "嫦娥"
- 函数内部专属:name3 := "天宫一号"
匿名变量(哑元变量):
当有些数据必须用变量接收但是又不使用它时,就可以用_来接收这个值
常量
const PI = 3.1415926
const UserNotExistErr = 10000
iota:实现枚举
两个要点:
- iota在const关键字出现时将被重置为0
- const中每新增一行常量声明,iota累加1
流程控制
if
// if
var age = 19
if age > 18{
fmt.Println("成年")
}else if age > 7{
fmt.Println("上小学")
}else{
fmt.Println("最快乐的时光")
}
for循环
-
标准for循环
// for
for i := 0; i<10;i++{
fmt.Println(i)
}
基本数据类型
整型
- 无符号整型:uint8、uint16、uint32、uint64
- 带符号整型:int8、int16、int32、int64
- int:具体是32位还是64位看操作系统
- uintptr:表示指针
其他进制数
GO语言中无法直接定义二进制数
浮点型
float32和float64
GO语言中浮点数默认是float64
复数
complex128和complex64
布尔值
true和false
不能和其他的类型做转换
字符串
常用方法
字符串不能修改
byte和rune类型
都属于类型别名
字符串、字符、字节都是什么?
- 字符串:双引号包裹的是字符串
- 字符:单引号包裹的是字符,单个字母、单个符号、单个文字
- 字节:1byte=8bit
go语言中字符串都是UTF8编码,UTF8编码中一个常用汉字一般占用3个字节
package main
import "fmt"
// 单行注释
/*
多行注释
*/
// go语言函数外的语句必须以关键字开头
var name = "lisi"
var age int
// main函数是入口函数
// 它没有参数也没有返回值
func main(){
// 函数内部定义的变量必须使用
var isOk = true
fmt.Println(isOk)
// if
var age = 19
if age > 18{
fmt.Println("成年")
}else if age > 7{
fmt.Println("上小学")
}else{
fmt.Println("最快乐的时光")
}
// for.1
for i := 0; i<10;i++{
fmt.Println(i)
}
// for.2
var i = 0
for ;i < 10; i++ {
fmt.Println(i)
}
// for.3
// var j = 0
// for j <10 {
// fmt.Println(j)
// j++
// }
// for.4
// for {
// fmt.Println("无限循环")
// }
// for.5
// s := "不忘初心坚持奋斗"
// fmt.Println(len(s)) //
// for i,v := range s {
// // fmt.Println(i, v)
// fmt.Printf("%d %c\n", i, v)
// }
// 哑元变量 不想用到的都直接扔给它
//
// 打印9*9乘法表
for i := 1; i<10; i++ {
for j:=1;j<=i;j++{
fmt.Printf("%d*%d=%d\t",j, i, j*i)
}
// fmt.Print(i)
// fmt.Print(i, "\t")
// fmt.Printf("%d\t",i)
fmt.Println()
}
for i := 1; i<10; i++ {
for j:=9;j>=i;j--{
fmt.Printf("%d*%d=%d\t",i, j, j*i)
}
fmt.Println()
}
for i := 1; i<10; i++ {
for j:=1;j<=i;j++{
fmt.Printf("%d*%d=%d\t",j, i, j*i)
}
// fmt.Print(i)
// fmt.Print(i, "\t")
// fmt.Printf("%d\t",i)
fmt.Println()
}
for i := 1; i<10; i++ {
for j:=1;j<=i;j++{
fmt.Printf("%d*%d=%d\t",j, i, j*i)
}
// fmt.Print(i)
// fmt.Print(i, "\t")
// fmt.Printf("%d\t",i)
fmt.Println()
}
for i := 1; i<10; i++ {
for j:=1;j<=i;j++{
fmt.Printf("%d*%d=%d\t",j, i, j*i)
}
// fmt.Print(i)
// fmt.Print(i, "\t")
// fmt.Printf("%d\t",i)
fmt.Println()
}
for i := 1; i<10; i++ {
for j:=1;j<=i;j++{
fmt.Printf("%d*%d=%d\t",j, i, j*i)
}
// fmt.Print(i)
// fmt.Print(i, "\t")
// fmt.Printf("%d\t",i)
fmt.Println()
}
for i := 1; i<10; i++ {
for j:=1;j<=i;j++{
fmt.Printf("%d*%d=%d\t",j, i, j*i)
}
// fmt.Print(i)
// fmt.Print(i, "\t")
// fmt.Printf("%d\t",i)
fmt.Println()
}
for i := 1; i<10; i++ {
for j:=1;j<=i;j++{
fmt.Printf("%d*%d=%d\t",j, i, j*i)
}
// fmt.Print(i)
// fmt.Print(i, "\t")
// fmt.Printf("%d\t",i)
fmt.Println()
}
for i := 1; i<10; i++ {
for j:=1;j<=i;j++{
fmt.Printf("%d*%d=%d\t",j, i, j*i)
}
// fmt.Print(i)
// fmt.Print(i, "\t")
// fmt.Printf("%d\t",i)
fmt.Println()
}
for i := 1; i<10; i++ {
for j:=1;j<=i;j++{
fmt.Printf("%d*%d=%d\t",j, i, j*i)
}
// fmt.Print(i)
// fmt.Print(i, "\t")
// fmt.Printf("%d\t",i)
fmt.Println()
}
for i := 1; i<10; i++ {
for j:=1;j<=i;j++{
fmt.Printf("%d*%d=%d\t",j, i, j*i)
}
// fmt.Print(i)
// fmt.Print(i, "\t")
// fmt.Printf("%d\t",i)
fmt.Println()
}
var f1 = 1.234
fmt.Printf("%T\n", f1)
var f2 = float32(1.234)
fmt.Printf("%T\n", f2)
// byte和rune
s1 := "Hello"
s2:= "无可奈何花落去"
for _,v := range s1 {
fmt.Printf("%c %T\n", v, v)
}
for _,v := range s2 {
fmt.Printf("%c %T\n", v, v)
}
// 八进制
var n1 = 0777
// 十六进制
var n2 = 0xff
fmt.Println(n1, n2) // 511 255 打印的是十进制
fmt.Printf("%o\n", n1)
fmt.Printf("%x\n", n2)
}
本文来自博客园,作者:寻月隐君,转载请注明原文链接:https://www.cnblogs.com/QiaoPengjun/p/16167966.html