吉祥物:金花鼠
官网:: golang.org
云计算应用:CDN(内容分发网络),访问网址加载视频速度很快
go语言特点:机能达到静态语言的安全和性能(c语言),也达到动态语言的开发维护效率(python)
go语言包的概念:每个文件都属于一个包,main函数必须在main包
go语言引入垃圾回收机制:内存自动回收,不需要开发人员关注
go语言天然并发:goroutine,轻量级线程
go语言开发工具:VSCode,sublime,vim,Emacs
SDK:软件开发工具包 下载地址:golong.org
验证SDK安装成功:
运行方式:
go注意事项:如果go定义的变量,import的包没用到不会编译通过
go注释方式:行注释//,块注释/* */ 快捷键 Ctrl+/
go缩进:tab整体向右移动,shift+tab整体向左移动
格式化:> gofmt main.go会在控制台显示格式化后的代码,
> gofmt -w main.go 将格式化后的内容在重置到原文件
go每行最长80字符,println代码里换行"," 若想在控制台输出换行用\n
我们在控制台输入指令发给dos服务器,服务器在Windows里执行相应操作
查看当前目录:dir
回到根目录:cd \
创建目录:md project1 project2
删除空目录:rd project1
删除多级目录:rd /q/s project1 (/q:带询问)
创建文件:echo hello world > abc.txt
复制文件(使用原文件名):copy abc.txt d:\tmp
复制文件(重新命名):copy abc.txt d:\tmp\hello.txt
移动文件:move abc.txt f:\tmp
删除文件:del abc.txt
清屏:cls
退出:exit
全局变量:在函数之外定义的变量
var (
a = 100
b = "necy"
c = 300
)
1. string到int
int, _ = strconv.Atoi(string)
2. string到int64
int64, _ = strconv.ParseInt(string, 10, 64) 转换后10进制,转换后int64
3. int到string
string = strconv.Itoa(int)
string = fmt.Sprintf("%d", num) 第一个参数的类型根据第二个参数类型而定
4. int64到string
string = strconv.FormatInt(int64,10) 10进制
5. 如果string="hello",转换后的标准数据类型是0/false
ptr输出:0xc04204e080
&ptr输出:0xc04206c020
*ptr输出:10
值类型:int系列,float系列,bool,string,数组,struct
引用类型:指针,slice切片,map,管道,interface
switch穿透,会继续向下执行一个case,但只能穿透一层
for i := 1; i < 10; i++ {
fmt.Println("123")
}
i:=1
for i < 10 {
fmt.Println("123")
i++
}
name = "amber"
for index,val := range name {
fmt.Println("index=%d, value=%c", index, val)
}
var i:= 1
for{
fmt.Println("hello world!")
i++
if i > 10 {
break
}
}
import(
"fmt"
"math/rand"
)
fmt main{
rand.Seed(time.Now())
n := rand.Intn(100)
fmt.Println(n)
}
fmt.main(){
label1:
for i = 0; i < 4; i++ {
label2:
for j = 0; j < 5; j++ {
if j==2{
break label1
}
}
fmt.Println("j=", j)
}
}
* break label1是跳出第一个for循环
直接跳到label指定的内容,不推荐使用
fmt main {
var num = 10
if n > 10 {
goto label1
}
fmt.Println("ok1")
fmt.Println("ok2")
fmt.Println("ok3")
label1:
fmt.Println("ok4")
fmt.Println("ok5")
}
定义:为完成特定功能的集合
fun 函数名(形参)(返回值类型){
return 返回值列表
}
fun cal(n1 float64, n2 float64, operator byte) float64 {
var res float64
switch operator {
case '+':
res = n1 + n2
case '-':
res = n1 - n2
default:
fmt.Println("操作符错误")
}
return res
}
如果一个文件同时包含全局变量,init函数,main函数,执行的顺序是: 全局变量 > init函数 > main函数
输出的结果: