GO程序设计语言.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GO程序设计语言

Go程序设计语言(一) 本文译自 HYPERLINK /wiki/Rob_Pike Rob Pike的 HYPERLINK Go语言PPT教程 – HYPERLINK /doc/GoCourseDay1.pdf The Go Programming Language Part 1(updated June 2011)。由于该教程的必威体育精装版更新时间早于 HYPERLINK /doc/go1.html Go 1版本发布,因此该PPT中的一些内容与Go 1语言规范略有差异,到时我会在相应的地方做上注解。 谁发明了Go Go语言的设计和实现工作是由Google的一个研发小组以及来自世界各地的大量贡献者共同完成的。 联系方式: HYPERLINK :???????????????? 官网 HYPERLINK mailto:golang-nuts@ golang-nuts@:??? 用户讨论组 HYPERLINK mailto:golang-dev@ golang-dev@:???? 开发者讨论组 课程大纲 第一部分:基础 第二部分:类型(type)、方法(method)以及接口(interface) 第三部分:并发(concurrency)与通信(communication) 这个课程是关于Go程序设计语言的,而不是关于编程语言设计方法的,后者是一个单独的话题,不在此教程范围内。 第一部分大纲 动机 基础 -?简单、熟悉的内容 包与程序构建 动机 为什么要发明一门新语言? 在当今世界,编程语言在某些方面不够给力: 计算机运行速度快,但软件的构建慢。 为了速度和安全性需进行必要的依赖分析。 在类型上遇到了太多的阻碍。 对垃圾收集以及并发的支持太差。 多核被视为危机而不是机会。 积极应对 我们的目标是让编程重新回归快乐。 兼有动态语言的感觉以及静态类型系统的安全性; 编译成机器语言以获得更快的运行速度; 真正在运行时支持GC(垃圾收集)以及并发; 轻量级、灵活的类型系统; 拥有方法(method),但却不是传统的OO(面向对象)语言。 资源 关于Go语言的更多背景资料请参见文档: 文档包括: 语言规范 教程 Effective Go 标准库文档 安装和How-to文档 FAQs 一个语言联系游乐场(在浏览器中运行Go程序) 更多 现状:编译器 gc( HYPERLINK /wiki/Ken_Thompson Ken Thompson),又称6g,8g,5g ??????? 继承自Plan 9项目的编译器模型 ??????? 生成代码速度非常快 ??????? 不支持gcc直接链接 gccgo(Ian Taylor) ??????? 更为熟悉的体系架构 ??????? 生成代码的速度没有gc那样快 ??????? 支持gcc直接链接 支持32-bit和64-bit x86 (amd64,x86-64) 以及ARM。 垃圾收集器,并发等都已实现。 优秀且正逐步完善的标准库。 基础 是时候上一些代码了 package main import fmt ? func main() { ? ? fmt.Print(Hello, 世界\n) } ? 语言基础 假设熟悉其他C语言类的(C-like)编程语言,这里将快速浏览一些基础知识。 这里大部分内容是简单的且熟悉的,也可能因此而有些沉闷,这里先说声道歉。 接下来的两部分教程会包含很有趣的内容,不过我们首先需要打下良好基础。 词法结构 - 传统中蕴含新意。 - 源码采用UTF-8编码。空格包括:空白,tab,换行,回车。 - 标识符由字母和数字组成(外加_),字母和数字都是Unicode编码。 - 注释: /* This is a comment; no nesting */ // So is this. ? 字面值(literals) 类似C语言中的字面值,但数值不需要符号以及大小标志(后续会有更多这方面内容): ? 23 0x0FF 1.234e7 ? 类似C中的字符串,但字符串是Unicode/UTF-8编码的。同时,\xNN总是有2个数字;\012总是3;两个都是字节: ? Hello, world\n \xFF ? ? ??// 1 byte \u00FF ? ? // 1 Unicode char, 2 bytes of UTF-8 ? 原生字符串:`\n\.abc\t\` == \\n\\.abc\\t\\ 语法概述 基本上就是类C的语法,但使用反转的类型和声明,并使用关键字作为每个声明的开头。 ? var a int var b, c *int // 注意与C的不同 var d []int type S struct { a, b int } ? 基本的控制结构也十分熟悉: ? i

文档评论(0)

bigone123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档