GoLangStudy:day1
GO study day1
序言
优势
1.极简单的部署方式
可以直接编译成机器码,效率高
不依赖其他第三方库
直接运行即可实现部署
2.静态类型语言
编译的时候可以检查出来隐藏的大多数问题
- 动态语言大多数问题只有在运行的时候才能被发现
3.语言层面的并发
go语言能够通过充分的利用多核来实现并发
4.强大的标准库
runtime的系统调度机制
高效的GC垃圾回收
十分丰富的标准库
5.简单易学
只有25个关键字
老祖C语言,内嵌C语法支持
依旧老牌面向对象
可以跨平台
6.大厂领军(爸爸。
Golang适合的领域
云计算基础设施
基础后端软件
微服务
互联网基础设施
缺点
1.包管理,大部分的包都在github上由私人账户管理,稳定性较差
2.所有异常都由error处理
Golang语法注意点
1.基础程序框架注意点
package main //程序的包名
import (
"fmt"
"time"
)
/*导入包方式有两种,建议用上面的方式
import "fmt"
import "time"
*/
// main函数
func main() {
//golang建议不加分号
fmt.Println("Hello Go!")
time.Sleep(1 * time.Second)
}
//go语言强制要求 { 必须与函数名在同一行,否则为语法错误
2.常见变量声明方式
package main //程序的包名
import "fmt"
// 方法一,二,三可以用于声明全局变量
var GA int = 200
// 四种变量的声明方式
func main() {
//方法一:声明一个变量,默认值为0,声明的变量必须被使用
var a int
fmt.Println("a =", a)
fmt.Printf("Type of a is %T\n", a)
//方法二:声明一个变量并赋值
var b int = 100
fmt.Println("b =", b)
fmt.Printf("Type of b is %T\n", b)
//方法三:(不建议使用)初始化时省去数据类型,根据值自动匹配当前变量数据类型
var c = 100
fmt.Println("c =", c)
fmt.Printf("Type of c is %T\n", c)
//方法四:(最常用)省去var关键字,直接自动匹配,只适用于函数体内声明
d := 100
fmt.Println("d =", d)
fmt.Printf("Type of d is %T\n", d)
//输出全局变量
fmt.Println("GA =", GA)
//声明多个变量
//1.同类型变量
var xx, yy int = 100, 200
fmt.Println("xx=", xx, "yy=", yy)
//2.不同类型变量
var aa, bb = 123, "test"
fmt.Println("aa=", aa, "bb=", bb)
//3.多行多变量声明
var (
ii int = 124
jj bool = false
)
fmt.Println("ii =", ii, "jj =", jj)
}
输出结果:
a = 0
Type of a is int
b = 100
Type of b is int
c = 100
Type of c is int
d = 100
Type of d is int
GA = 200
xx= 100 yy= 200
aa= 123 bb= test
ii = 124 jj = false
3.const与iota注意事项
package main
import "fmt"
// const可用于定义枚举类型
// iota只能配合const()一起使用,否则报错
const (
//可以在const()添加一个关键字iota,每行的iota都会累加1,第一行的iota默认值为0
BEIJING = 1 * iota //iota=0
SHANGHAI //iota=1
SUZHOU //iota=2,依次累加
)
const (
//一行中的变量共用一个iota,iota是逐行累加的
a, b = iota + 1, iota + 2
c, d
e, f
g, h = iota * 2, iota * 3
i, j
)
func main() {
//常量,具有只读属性,不可修改
const length int = 25
fmt.Println("length =", length)
fmt.Println("beijing =", BEIJING)
fmt.Println("shanghai =", SHANGHAI)
fmt.Println("suzhou =", SUZHOU)
fmt.Println("a =", a, " b=", b)
fmt.Println("c =", c, " d=", d)
fmt.Println("e =", e, " f=", f)
fmt.Println("g =", g, " h=", h)
fmt.Println("i =", i, " j=", j)
}
输出结果:
length = 25
beijing = 0
shanghai = 1
suzhou = 2
a = 1 b= 2
c = 2 d= 3
e = 3 f= 4
g = 6 h= 9
i = 8 j= 12
浙公网安备 33010602011771号