Go语言教程--zk--V3.2---20141013

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Go语言教程仅供参考学习之用如有不当之处,敬请指正zhangk68@foxmail.com学习方法•专业培训•官方网站(标准、规范、趋势)•参加国内社区(同业交流)•搜索引擎(问题-答案-验证)•先行者关注•大量练习(coding,coding,coding….)教学方法•基本概念、基本定义、功能解析-教案+讲解•重点概念、难点、混淆点、难理解-代码演示•思考、记忆、技能-提问+重复+作业+答疑教学目的•了解go语言的产生、使用及发展背景•了解当前go语言在国内的使用现状•了解软件开发的当前趋势及特点•了解软件开发功能及人才的市场趋势•掌握软件开发的基本构成及流程•全面掌握go语言开发的基本体系–语言特点–资源与工具–编码规范及程序构成–程序包管理–语法体系•类型(11)•声明与范围•字面量与表达式•语句(18)–基础包的解析–测试样例实现具备扎实理论基础的初级程序员课程大纲•软件开发及语言背景1.go语言背景2.go语言国内现状3.软件开发的特点及人才趋势4.软件开发的基本流程Go语言体系5.语言特点6.资源与工具7.开发环境设置8.程序基本框架9.程序包管理10.词法元素11.语法体系•体系框架•类型(11)•声明与范围•字面量与表达式•语句(18)12.难点解析5%95%1.go语言背景Go语言创建者•创建者–RobertGriesemer(java的Hotspot编译器)–RobPike(贝尔实验室Unix团队,UTF-8字元编码)–KenThompson(1983图灵奖,1998美国国家技术奖)•历程–2007.9.21(启动,构思新语言的目标,兼职)–2008.1(ken开始编写编译器)–2008.6(go语言成为一个全职的项目)–2008年底(RussCox加入项目,推动了从原型到实现的库的开发)–2009.11.10,go正式成为开源项目Go语言产生的原因•萌生于对系统编程可用语言和环境的挫折感•主流语言中,缺乏某种语言同时满足:–快速编译–高效执行–简易编程•相比C++,Java的复杂性,程序员更愿意转向使用动态类型语言python,JavaScript•Google公司自身的需求–庞大的硬件和软件–软件开发语言和工具的多样性–代码的可管理性–消除软件开发的缓慢与笨拙–改善软件开发者和开发伙伴的工作环境•与编程语言研究相比,Go更加关注软件工程的运作Go语言的使用•Google内部已在正式环境使用go语言–Golang.org(go语言官方网站)–Vitness(大型SQL安装系统)–Dl.google.com(Google下载服务器)–Youtube(视频网站)•其他公司–BBC()–Dropbox()–Github()–Bithucket()–Cloudwalk()备注Go语言不是为了革新编程理论;Go语言意味着对编程实践的创新!2.Go语言国内现状Go语言在国内的现状•正面的声音•反面的声音•如火如荼的发展中….国内的go应用•七牛云存储()•群策()•山坡网()•其他网站()参考文档•关于go语言的评价和讨论––•关于go语言的国内参考网站–Golang中国()–开源中国()备注3.软件开发的当前趋势及特点软件开发的趋势单机网络互联网•基本软件开发知识与技能•熟悉软件工程相关的概念•熟悉相关业务领域的知识•特定人才的市场饱和度•公司业务对信息管理的需求度备注人才需求趋势单核多核集群个人本地团队跨区域团队应用数据行业数据数据中心复杂4.软件开发的基本流程软件开发的基本流程•需求-分析-开发-测试-部署-升级•变更-测试-发布•方法体系•开发过程管理•代码管理•工具管理•部署及应用管理•项目管理•效率•准确•可扩展•弹性•…备注特征及关注5.Go语言特点语言特点•软件工程的思想指导了go语言的设计•清晰简洁的依赖性管理•清晰的语法•清晰的语义–无指针运算–没有隐式的数字类型转换–数组边界检查–没有类型别名•重组合轻继承•更加简单的编程模式(垃圾回收,并发)•简单易用的编程辅助工具(go,gofmt,godoc,gofix)面对问题•缓慢的构造•难以控制的依赖性•难以理解的程序(阅读、帮助文档等)•重复劳动•软件更新的高成本•版本偏斜•难以编写自动化工具•跨语言程序构建与传统c,c++,Java的差异•并发•垃圾回收•接口类型•反射•类型开关备注•官方参考网址:–资源与工具资源•参考网址:–官网()–官网文档()–官网编码指引()–官网博客()–官网FAQ()–官网中文镜像()–Go语言爱好者的学习家园()–Golang中国()•开发包下载–地址:=OpSys-Windows+Type%3DInstaller–安装指引:•开发工具下载–SubLImeText()•自动格式化•颜色标识•集成的包管理•自动帮助信息•多选择编辑•命令面板管理•代码的快速跳转–Elipse+plugin()工具•GoSDK设置–下载地址(=OpSys-Windows+Type%3DInstaller)–设置系统路径•安装的默认路径为:c:\go(可以根据需要,自己给定路径)•系统会自动添加GOROOT环境变量(开发包的安装路径)•将路径c:\go\bin添加到PATH环境变量中–设置工作区路径•任意选择一个路径作为工作区路径•工作区必须包含三个目录(src源文件,pkg包对象,bin可执行命令)•Go提供的工具,会编译源文件包,并将结果文件安装到pkg和bin目录下•设置GOPATH环境变量,指向工作区路径•Sublimetext设置–下载地址()–安装•双击下载的文件,完成安装•运行程序•安装packagecontrol()–ViewShowConsole–运行相关指令完成packagecontrol包的安装•如右图所示,点击packagecontrol•安装gosublime插件•安装gotodefinition插件•根据需要安装其他插件7.开发环境设置Gosdk与Sublimetext编辑器的安装及设置8.程序基本框架Go程序–基本结构包导入常量变量类型块(block)由一对大括号包含大量声明和语句确定的块“隐式块”1.全局块(包含所有的Go源码段)2.包块(单独包包含的源码段)3.文件块(单独文件包含的源码段)4.语句块(if,for,witch包含的源码段)块的镶套会影响变量的范围8.程序基本框架程序–基本构成要素8.程序基本框架程序–基本构成要素–类型8.程序基本框架程序–基本构成要素–表达式8.程序基本框架程序–基本构成要素–语句程序包管理(packagemanagement)包-命名(names)•包名–一个包导入后,包名就成为导入包的默认访问器名–规范:•包名应该:短、简洁、含义易懂•小写,一个单词,不用下划线或者大小写混合•包名应该是原目录的“基名”–/src/pkg/encoding/base64–导入import“encoding/base64”访问器名:base64(不是encoding_base64,encodingBase64)举例•范例:–Once.DoOrWaitUntilDone(setup)–Once.Do(setup)(建议)–长文件名不会自动令其含义更加易懂,好的注释和文档更加有意义包–结构(structure)•Go程序是通过包的链接构建的•每个包是通过一个或多个源文件构建的,每个文件定义的常量、类型、变量、函数都属于同一个包•每个源文件都要包含一个package从句•包名不可以为空标识符•包的导入–导入声明Sin的本地名称–importlib/mathmath.Sin–importmlib/mathm.Sin–import.lib/mathSin•词法元素是指可以出现在一个源文件中,合法的字符或字符组词法元素(Lexicalelements)什么是词法元素(lexicalelements)•标记就是编译器定义的,在程序中具有特定含义的最小独立单元什么是标记/符号(token)•字元(literal),或字元常量(literalconstant)是指存在于程序中,不能被改变的值•一个字元常量(literalconstant)是不可寻址的,也就是指字元常量的值存在于内存中的某处,但是我们没有方法获取它的地址•每个字元(literal)包含一个值和类型。任何字元的值在程序运行中都不能改变,并且不能超出它的类型所能表示的范围什么是字元/字元常量(literal)词法元素(Lexicalelements)1.注释(comments)•行注释//•快注释/**/•注释不可以镶套(重叠)•包注释•源文件中的注释将用于文档生成–包级的内容说明–注释的分类和形式将决定文档的质量•每个包应该有一个包注释(块注释),一个包存在多个文件时,只需要在其中一个文件添加包注释就可以了2.空格•空格(Space)\u0020•水平制表符(horizontaltabs)\u0009•回车(carriagereturns)\u000D•新行(newlines)\u000A•一个新行或者文件的尾部会自动添加分号4.标记/符号(token)•Identifier(标识符)•Keyword(关键字)•Operatoranddelimiter(操作符和分隔符)•Literals(字元/文字/常量)3.分号(semicolons)•分号会被自动添加到非空行的、以下标记(token)的末尾:–标识符(identifier)–整数(integer)、浮点数(floating-point)、虚数(imaginary、rune、字符串(string)–任一内置关键字:break,continue,fallthrough,return–任一操作符和分界符:++,--,),],}•分号可以出现在for循环从句中,用于分隔初始条件、循环条件、递进条

1 / 103
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功