资源描述:
《go语言编程-v1.0.0》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Go!why404@七牛云存储2012/07/2112年7月21日星期六1What?Godaddy(去你爹,X)Goahead(去个头,X)Golang(Go语言,YES)12年7月21日星期六2Goahead...12年7月21日星期六3Golangis一个在语言层面实现了并发机制的类C通用型编程语言12年7月21日星期六4为什么我们需要一门新语言多核时代,硬件更新换代快软件不能充分利用硬件资源传统编程语言多核并发编程够繁琐生产效率12年7月21日星期六5Go前世今生1995BellLabs,Plan9->Inferno
2、(Limbo)2007/09Google's20%project2008/05Googlefull-timeproject2009/11officiallyannounced2012/03Go1Released12年7月21日星期六6HelloWorldpackagemainimport“fmt”funcmain(){fmt.Println(“Hello,世界”)}12年7月21日星期六7HelloWorldpackagemainimport“fmt”funcmain(){fmt.Println(“Hello,世界”)}ex
3、portGOROOT=$HOME/goexportPATH=$PATH:$GOROOT/bin$gorunhello.goHello,世界12年7月21日星期六8HelloWorldpackagemainimport“fmt”funcmain(){fmt.Println(“Hello,世界”)}exportGOROOT=$HOME/goexportPATH=$PATH:$GOROOT/bin$gobuildhello.go$./helloHello,世界12年7月21日星期六9Go特性小结(1)动态语言的写法,静态类型,编
4、译执行模块化的包管理机制,一个脚本即可是一个包包可导出可见成员供包外部使用Go程序执行首调main.main()函数任何地方都是UTF-8的包括字符串和程序代码12年7月21日星期六10变量varaintvarbstringvarcbool12年7月21日星期六11同时声明多个变量varaintvarbstringvarcboolvar(aintbstringcbool)12年7月21日星期六12声明多个同类型变量varaintvara1intvara,a1int12年7月21日星期六13变量声明默认零值初始化varain
5、t//a=0varbstring//b=“”varcbool//c=false12年7月21日星期六14变量声明并赋值varaintvarbstringvarcboolvaraint=99varbstring=“hello”a=99varcbool=falseb=“hello”c=false12年7月21日星期六15变量声明并赋值(简写)varaint=99varbstring=“hello”varcbool=falsea:=99b:=“hello”c:=false(:=仅限函数内使用)12年7月21日星期六16变量声明且
6、并行赋值vara,a1inta,a1=99,100a,a1:=99,100(:=仅限函数内使用)12年7月21日星期六17匿名变量_vara,a1int_,a1=99,100_,a1:=99,100(将100赋值给a1,同时丢弃99)12年7月21日星期六18声明却未使用的变量packagemainfuncmain(){varastring}对声明却未赋值的变量,会导致程序编译失败12年7月21日星期六19Go特性小结(2)变量声明,类型后置,默认零值初始化同类型的多个变量,可在一行内完成声明函数内支持变量同时声明并赋值支
7、持多个变量并行赋值支持匿名变量Go的静态编译是语法检查的第一道单元测试12年7月21日星期六20基本类型bool(true,false)数字内型(有符号/无符号,有长度/无长度)string(内建”UTF-8string”)array([n])slice(array[i:j])map(map[])chanerror12年7月21日星期六21数字类型无长度int,uint有长度int8,int16,int32,int64byte/uint8,uint16,uint32,ui
8、nt64float32,float6412年7月21日星期六22强类型转换(1)varaintvarbint32a=99b=a+1//Errorb=b+1//OKb=int32(a)+1//OK12年7月21日星期六23强类型转换(2)varsstring=“hello”s[0]=‘a’//Error//O