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种声明方式:

  1. var name string
  2. var name2 = "嫦娥"
  3. 函数内部专属:name3 := "天宫一号"

匿名变量(哑元变量):

当有些数据必须用变量接收但是又不使用它时,就可以用_来接收这个值

常量

const PI = 3.1415926

const UserNotExistErr = 10000

iota:实现枚举

两个要点:

  1. iota在const关键字出现时将被重置为0
  2. const中每新增一行常量声明,iota累加1

流程控制

if

// if
	var age = 19
	if age > 18{
		fmt.Println("成年")
	}else if age > 7{
		fmt.Println("上小学")
	}else{
		fmt.Println("最快乐的时光")
	}

for循环

  1. 标准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)
}
posted @ 2022-04-19 23:20  寻月隐君  阅读(45)  评论(0编辑  收藏  举报