Golang - 1 Golang入门
1 Golang入门
1 Golang介绍
1.1 简介
Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言
Go是【静态 强类型】语言,是区别于解析型语言的编译型语言(静态:类型固定 强类型:不同类型不允许直接运算)
解析型语言——源代由解析器对代码进行解释执行
编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行
python :动态强类型-【类型:不同类型之间能否直接运算】
go:静态强类型 -【静态:类型固定】
解释型:源代码有解析器对代码进行解释后执行
python、nodejs、php
编译型:源代码编译成机器语言,然后由机器直接执行机器码即可
c、java、c++、go
1.2 特性
① 跨平台的编译型语言
② 语法接近c语言
③ 管道chnnel 、切片slice、并发routine
④ 有垃圾回收机制
⑤ 支持面向对象和面向过程编程
1.3 go语言发展
-
2015年8月19日 go1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性,本次更新中移除了”最后残余的C代码”
用自己写自己被称为
语言的自举
-
2018年8月24日 go1.11 —— modules和WebAssembly支持 go mod模式 包管理
1.4 go语言的应用
由于其高并发和高性能,多应用与服务开发、并发、分布式、微服务等方向,自动化运维,区块链等方面
-
k8s:go写的
-
docker:go写的
-
服务端开发
-
分布式系统,微服务
-
网络编程
-
区块链开发
-
内存KV数据库,例如boltDB、levelDB
-
云平台
2 go
go代码是使用包来组织的,类似于其他编程语言中的库、模块、命名空间
2.1 包
一个包有一个或者多个.go
文件组成,放在一个文件夹内。
比如:字符串相关的代码都放在string
包中,每个.go
文件的开始必须使用package
声明,比如字符串包声明为 package string
2.2 main包
main包
:用来定义具体的执行程序 (比如说我们的业务程序)
main包
有特殊含义,一个项目必须要有main包
,运行入口是main包
下的main函数
func main
是函数名,没有参数,没有返回值,是整个项目的入口
package main // 注释:声明go文件属于哪个包
import "fmt" // 导入fmt包,自动导入的
func main() {
fmt.Println("hello world")
}
main 函数
:
- 如果当前包是
main包
,那么main函数
就是执行程序的入口- 如果当前包不是
main包
,那么main函数
就是一个普通函数
2.3 go程序的运行方式
- 编译并运行(一步完成)
- 命令行运行
go run 文件名.go
, 比如go run main.go
,
- 先编译为可执行文件,然后运行 (两步完成)
- 命令行运行
go build 文件名.go
, 比如go build main.go
- 生成可执行文件,比如
main
- 执行可执行文件,
./main
2.4 声明包与包导入
包导入,不使用会报错,编译不过
package main // 声明这个go文件属于哪个包,main有特殊含义,一个项目要运行必须要有main包,运行的入口是main包下的main函数
// 表示导入fmt包,自动导入的,goland自动导入的,使用了哪个包,编辑器会自动导入
// 包导入,不使用,会报错,编译不过
import "fmt"
a...
表示 传入的hello world
实参给了形参a