go语言入门 |青训营

83 阅读5分钟

1.go语言SDK安装,环境配置及IDE安装 2.go语言开发注意 严格区分大小写 不需要分号,每行自动加 3.转义字符 4.注释 //行注释 /* */块注释(块注释里面不可以镶嵌块注释) 5.规范代码 tab整体右移动 shift+tab 左移动 终端使用 gofmt格式化 运算符两边加空格 一行不超过80个字符 6.官方网站 https://golang.org 官方标准库API文档,https://golang.org/pkg (api:应用程序编程接口)

7.DOS指令 【1】目录操作指令 dir 查看目录 cd /d f: 切到f盘 cd 目录名 (相对路径切换目录) cd 目录地址 (绝对路径切换目录) cd .. 切换到上一级目录 cd \ 切换到根目录 md 目录名 新建目录 rd 目录名 删除空目录 rd /q/s 目录名 删除所有子目录 【2】文件操作指令 echo 内容 >目录地址\文件 在该地址加入该文件,并将内容写入 copy 文件 想要的地址(文件新名字) 粘贴 move 文件 想要去的地址 del 文件 删除该文件 del *.txt 删除所有此类文件 【3】其他 cls清屏 exit 推出

8.变量 (1)使用步骤:声明,赋值,使用 (2)三种使用方式 var a int,不赋值,使用默认值 var a=int ,自动判定变量类型,直接赋值 a =3,var也省略 (3)整型 分类:int ,uint,rune(=int32),byte(=uint8) 默认声明为int 查看字节大小 unsafe.Sizeof(变量名) 查看变量格式 “%T”,变量名 以上都用printf格式化输出 尽量使用占用空间小的数据类型

(4)浮点型 分类:float32,float64 浮点数都是有符号的 浮点数默认声明对象是float64 两种表示形式:科学计数法,十进制表示法

(5)字符类型 go没有,用byte代替 go中字符本质是整数型,直接输出(println)是输出码值,用格式化输出(%c),输出码值对应的字符 在ascll码上的直接保存到byte,对应码值大于255时用int保存

(6)布尔类型 bool只允许取值false和true 默认为false

(7)string类型 字符串赋值之后不可以修改 字符串两种表示形式:双引号,会识别转义字符 反引号:所有换行和特殊字符都不识别

(8)基本数据类型转换 T(v) :v要转换的变量 T数据类型 例子:n1=20.3 n2=int8(n1) 数据类型转换不受大小限制,可以随意转换,但是可能丢失精度/溢出(改变的是20.3的类型) 被转换到是变量存储的数据!,不是变量!

(9)基本数据类型和string类型转换 方式一:fmt.Sprintf(“%参数”,表达式) 参数需要和表达式类型匹配 案例:num=1 str= fmt.Sprintf(“%d”,num) 注意:整型%d,浮点型%f,布尔类型%t,字符型%c,string型%q,数据类型%T

方式二:使用strconv包 str=strconv.FormatInt(int64(num1),10)整型 str= strconv.FormatLoat(num2,’f’,10,64)浮点型 str=strconv.FormatBool(num3)布尔类型 str= strconv.Itoa(int(num4))

(10)string转换基本数据类型 确保转换为有效的数据类型 使用strconv包

image.png

(11)指针 获取变量的地址 &num 指针类型:指针存储的是地址,这个地址指向的空间存储值 数据类型 *int var ptr *int =&num *ptr 则是ptr指向的值 将num的地址赋给ptr,并通过ptr去修改num的值

(12)值类型和引用类型 值类型:基本数据类型,string,数组和结构体(变量直接储存值,内存在栈中分配 引用类型:指针,slice切片,map,管道chan,interface(变量储存的是地址,内存在堆中分配)

9.标识符的规范 规则:由英文字母,0-9数字,-组成。数字不可以开头,严格区分大小写,不能包含空格,不能以关键字为标识符。“-”是特殊标识符,称为空标识符,可以占位但不可以使用 注意:如果标识符首字母大写,则可以被其他包引用,如果小写,则只能被本包使用

10.运算符 算术运算符:+,——,*,/,%,++,-- (运算都是整数时,/结果也为整数。a%b=a-(a/b)b,++and--只能独立使用 关系运算符:==,!=,<,>,<=,>= 逻辑运算符:&&,||,!(逻辑短路) 赋值运算符:=,+=,-=,=,/=,%=,<<=,>>=,&=,^=,|=(运算顺序从右往左) 位运算符

11.键盘输入语句 fmt.ScanLn()和fmt.Scanf()

在Go语言中,fmt.Scanfmt.Scanf 都是用于从标准输入读取用户输入的函数,但它们在使用方式和功能上有一些区别。

(1). fmt.Scan:

函数签名:func Scan(a ...interface{}) (n int, err error)
使用方式:fmt.Scan 需要传入一系列变量的地址作为参数。它会从标准输入读取用户输入,将解析后的值存储到传入的变量地址中,并返回成功读取的参数个数以及可能出现的错误。

`package main

import "fmt"

func main() { var num1, num2 int fmt.Print("请输入两个整数:") n, err := fmt.Scan(&num1, &num2) if err != nil { fmt.Println("输入错误:", err) } else { fmt.Println("读取的参数个数:", n) fmt.Println("第一个整数:", num1) fmt.Println("第二个整数:", num2) } } ` (2).fmt.Scanf:

  • 函数签名:func Scanf(format string, a ...interface{}) (n int, err error)
  • 使用方式:fmt.Scanf 需要传入一个格式字符串作为第一个参数,后面可以传入一系列变量的地址。它会按照格式字符串的指示从标准输入读取用户输入,并将解析后的值存储到传入的变量地址中,并返回成功读取的参数个数以及可能出现的错误。 `package main

import "fmt"

func main() { var name string var age int fmt.Print("请输入姓名和年龄:") n, err := fmt.Scanf("%s %d", &name, &age) if err != nil { fmt.Println("输入错误:", err) } else { fmt.Println("读取的参数个数:", n) fmt.Println("姓名:", name) fmt.Println("年龄:", age) } } 12.程序流程控制 (1)顺序控制 分支控制:单分支控制|双分支控制,if控制/Switch控制 循环控制:for循环 (2)跳转控制语句 continue结束本次循环for i=1;i<10;i++{ if i==5{ continue} }goto无条件跳转到指定行goto label1

labl1: ` return终止函数