Go语言入门实战
基础语法入门
概述
理念:Go是google在2009年发布的第二款开源语言,Go专门针对多处理器系统应用程序进行优化,开发者期待它的开发效率和脚本语言一样快,期待它的运行速度可以媲美c或c++
-
Go语言优势
简洁、快速、安全
并行、有趣、开源
内存管理,数组安全,编译迅速
-
Go语言劣势
缺少框架
错误处理
软件包管理
-
Go目前的应用
Docker
Codis
Glow类似于Hadoop
Cockroach
Go语言Hello word
在官网下载Go安装包,安装配置环境,下载LiteIde
-
Go语言的入口在main包下的main函数
//这里不能使用单引号表示字符串,main包main方法是go语言入口 package main import "fmt" func main() { fmt.Print("hello word") }
-
Go语言要安装别人的包需要先配置Gopath包含( src、pkg、bin)目录
window下:set GOPATH=d:/go_libsou
go get github.com/astaxie/beego//获取beego框架存储在gopath
自己写的类和工具也可以放在gopath下引用
GO语法与函数
-
Go语言常用关键字
-
-
变量定义
-
var x int //定义变量时用var关键字变量类型在后边
package main import "fmt" func main() { var x int //定义变量格式 x = 1 //简短申明定义多个变量 ,简短申明没法在函数体外部使用 y, z, l := 2, "golang", 3 fmt.Printf("%d %d %s %d", x, y, z, l) }
-
-
数据类型
bool
rune
int8|int16|int32|int64
byte
uint8|uint16|uint32|uint64
float32|float64
-
complex64|complex128
var a complex64 = 6 + 2i fmt.Println(a * a)
string
-
array|slice
//array var x [10]int x[0]=1 fmt.Printf("%v",x) y:=[10]int{1,2,4,6,7} fmt.Println("v%", len(t))
//slice 动态数组 var fslice []int //make用于内建类型的内存分配 func foo(n int) []byte { bar := make([]byte, n) } o := make([]int, 3, 5)//3代表长度,5代表容量 o=append(o,5,6,7,6,7,9,0,1)//动态分配容量可扩增 k:=x[1:3]
-
map
var student map[string]float32 student = make(map[string]float32)//map必须make分配容量 student["zhangsan"] = 18.2 fmt.Printf("%v", student) student :=make(map[string]float32)//简短申明
-
流程控制
-
for循环
var q int sum := 0 for q = 1; q <= 100; q++ { sum += q } fmt.Println(sum) //简短申明循环 for x<100{ sum+=x x++ } for{}//代替while循环
-
switch
x:=1 switch x{ case 1: //break //默认添加break fallthrough //继续往下 }
-
range关键字循环遍历
t := [10]int8{1, 2, 4, 6, 7} for i, v := range t { fmt.Println(i, v) } u :=make(map[string]int) u["zhangsan"]=78 u["wangwu"]=76 for i,v:=range u{ fmt.Println(i,v) } //可以遍历字符串
-
-
函数
func swap(a int, b int) (m int, n int) { return b, a } func add(a *int) *int { *a = *a + 1 return a } func main() { a := 3 // b := 2 // a, b = swap(a, b) // fmt.Printf("%d %d", a, b) add(&a) fmt.Printf("%d", a) }
实践
有疑问加站长微信联系(非本文作者)