Go语言学习ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
Go大神
● Go语言的主要开发者有:肯.汤姆逊(Ken Thompson)、罗布.派克(Rob Pike)和罗伯特.格里泽默(Robert Griesemer)。这三个都是大神
● 肯.汤姆逊(Ken Thompson):图灵奖(计算器界的诺贝尔奖)得主,Uinx发明人(Linux基于Uinx内核开发), B语言作者(C语言前身),还做飞行员,后来被谷歌挖走。
● 膜拜一下大神的容颜:Ken老爷子(左),Rob Pike(右)
3
开发Go语言的初衷
● 根据Go语言开发者自述,近10多年,从单机时代的C语言到现在互联网时 代的Java,都没有令人满意的开发语言,而 C++往往给人的感觉是,花了 100%的经历,却只有60%的开发效率,产出比太低,Java和C#的哲学又来 源于C++。并且,随着硬件的不断升级,这些语言不能充分的利用硬件及 CPU。
1. # godep go build 项目编译成二进制文件,执行二进制文件 启动项目 如:./web-demo
2. # godep save 此时会生成Godeps文件夹,同时将引用
的包放入vendor文件夹中。Godeps.json 就相当于 java 的
ห้องสมุดไป่ตู้
maven里pom.xml。如果GOPATH路径下没有依赖包会报
Go语言分享 Go简介
环境搭建 HelloWorld
Web框架
1
Go简介
● Go(又称Golang)是Google开发的一种静态强类型、编译型、并发 型,并具有垃圾回收功能的编程语言。
● Go语言是2007 年开发2009年发布的一款开源编程语言 ● Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编
译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程 。 ● Go 是一种跨平台(Mac OS、Windows、Linux 等)静态编译型语言。 拥有媲美 C 语言的强大性能,在普通计算机上能几秒内快速编译一个 大项目,开发效率跟动态语言相差无几。 ● 很多开源项目都是使用 Go 语言开发的,其中包括 Docker、Etcd、 Codis、Consul 和 Kubernetes。
7
Godep安装(类似maven包管理)
● # go get github.com/tools/godep 下载 ● # cp bin/godep /Users/liang/software/go1.10.3/bin/ 把godep可执行文件
放到go的bin目录
● # godep version (godep help)
6
Unix/Linux上安装Go环境
● # tar -zxvf xxx.tar.gz 解压 ● # vim ~/.bashrc 或 (vim /etc/profile) ● # export GOROOT=/Users/liang/software/go1.10.3 ● # export PATH=$GOROOT/bin:$PATH ● # export GOPATH=/Users/liang/ideaWorkspace/go ● # source ~/.bashrc 或 (source /etc/profile) 配置生效 ● # go version
● Go的主要目标是, 兼具 Python 等动态语言的开发速度和 C/C++等编译型语 言的性能与安全性
● Go 语言的所有设计者都说,设计 Go 语言是因为 C++ 给他们带来了挫败感 。
● 在 Google I/O 2012 的 Go 见面会上,Rob Pike 是这样说的:我们做了大 量的 C++ 开发,厌烦了等待编译完成,尽管这是玩笑,但在很大程度上来 说也是事实。
4
Go语言特性
● 静态编译(编译器将源代码编译成二进制(或字节码)格式;在编译代码时, 编译器检查错误、优化性能并输出可在不同平台上运行的二进制文件,Go语言 保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发速度和易 维护性,有人形容Go语言:Go = C + Python , 说明Go语言既有C静态语言程 序的运行速度,又能达到Python动态语言的快速开发)
● 类型安全 ● 内存安全 (自动垃圾回收) ● 编译速度快(构建一个程序的时间只需要数百毫秒) ● 函数可以返回多个值 ● 反射 ● 网络编程、系统编程、并发编程、分布式编程。 ● 部署简单、并发性好、语言设计良好、执行性能好。
5
Go环境搭建
官网下载地址: https://golang.google.cn/dl/
找不到包,需要手动下载,如: # go get
github.com/BurntSushi/toml
3. # godep restore 如果下载的项目中只有Godeps.json文件
,而没有包含第三库则可以使用godep restore这个命令将
所有的依赖库下来下来到GOPATH的src中,然后# godep
● 罗布.派克(Rob Pike):Unix团队和Plan 9操作系统计划的成员,与Ken老爷子共事多年,并共创出广泛使 用的UTF-8 字符编码。
● 罗伯特.格里泽默(Robert Griesemer):曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript 引擎V8
save
8
Hello World
package main //声明本文件的package名
import "fmt" //import语言的fmt库——---用于输出
func main() { fmt.Println("Hello, World!")
}
// go run helloworld.go 实际是编译成二进制文件 再执行
// go build helloworld.go // ./helloworld
/* 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包, 如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。
Go大神
● Go语言的主要开发者有:肯.汤姆逊(Ken Thompson)、罗布.派克(Rob Pike)和罗伯特.格里泽默(Robert Griesemer)。这三个都是大神
● 肯.汤姆逊(Ken Thompson):图灵奖(计算器界的诺贝尔奖)得主,Uinx发明人(Linux基于Uinx内核开发), B语言作者(C语言前身),还做飞行员,后来被谷歌挖走。
● 膜拜一下大神的容颜:Ken老爷子(左),Rob Pike(右)
3
开发Go语言的初衷
● 根据Go语言开发者自述,近10多年,从单机时代的C语言到现在互联网时 代的Java,都没有令人满意的开发语言,而 C++往往给人的感觉是,花了 100%的经历,却只有60%的开发效率,产出比太低,Java和C#的哲学又来 源于C++。并且,随着硬件的不断升级,这些语言不能充分的利用硬件及 CPU。
1. # godep go build 项目编译成二进制文件,执行二进制文件 启动项目 如:./web-demo
2. # godep save 此时会生成Godeps文件夹,同时将引用
的包放入vendor文件夹中。Godeps.json 就相当于 java 的
ห้องสมุดไป่ตู้
maven里pom.xml。如果GOPATH路径下没有依赖包会报
Go语言分享 Go简介
环境搭建 HelloWorld
Web框架
1
Go简介
● Go(又称Golang)是Google开发的一种静态强类型、编译型、并发 型,并具有垃圾回收功能的编程语言。
● Go语言是2007 年开发2009年发布的一款开源编程语言 ● Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编
译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程 。 ● Go 是一种跨平台(Mac OS、Windows、Linux 等)静态编译型语言。 拥有媲美 C 语言的强大性能,在普通计算机上能几秒内快速编译一个 大项目,开发效率跟动态语言相差无几。 ● 很多开源项目都是使用 Go 语言开发的,其中包括 Docker、Etcd、 Codis、Consul 和 Kubernetes。
7
Godep安装(类似maven包管理)
● # go get github.com/tools/godep 下载 ● # cp bin/godep /Users/liang/software/go1.10.3/bin/ 把godep可执行文件
放到go的bin目录
● # godep version (godep help)
6
Unix/Linux上安装Go环境
● # tar -zxvf xxx.tar.gz 解压 ● # vim ~/.bashrc 或 (vim /etc/profile) ● # export GOROOT=/Users/liang/software/go1.10.3 ● # export PATH=$GOROOT/bin:$PATH ● # export GOPATH=/Users/liang/ideaWorkspace/go ● # source ~/.bashrc 或 (source /etc/profile) 配置生效 ● # go version
● Go的主要目标是, 兼具 Python 等动态语言的开发速度和 C/C++等编译型语 言的性能与安全性
● Go 语言的所有设计者都说,设计 Go 语言是因为 C++ 给他们带来了挫败感 。
● 在 Google I/O 2012 的 Go 见面会上,Rob Pike 是这样说的:我们做了大 量的 C++ 开发,厌烦了等待编译完成,尽管这是玩笑,但在很大程度上来 说也是事实。
4
Go语言特性
● 静态编译(编译器将源代码编译成二进制(或字节码)格式;在编译代码时, 编译器检查错误、优化性能并输出可在不同平台上运行的二进制文件,Go语言 保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发速度和易 维护性,有人形容Go语言:Go = C + Python , 说明Go语言既有C静态语言程 序的运行速度,又能达到Python动态语言的快速开发)
● 类型安全 ● 内存安全 (自动垃圾回收) ● 编译速度快(构建一个程序的时间只需要数百毫秒) ● 函数可以返回多个值 ● 反射 ● 网络编程、系统编程、并发编程、分布式编程。 ● 部署简单、并发性好、语言设计良好、执行性能好。
5
Go环境搭建
官网下载地址: https://golang.google.cn/dl/
找不到包,需要手动下载,如: # go get
github.com/BurntSushi/toml
3. # godep restore 如果下载的项目中只有Godeps.json文件
,而没有包含第三库则可以使用godep restore这个命令将
所有的依赖库下来下来到GOPATH的src中,然后# godep
● 罗布.派克(Rob Pike):Unix团队和Plan 9操作系统计划的成员,与Ken老爷子共事多年,并共创出广泛使 用的UTF-8 字符编码。
● 罗伯特.格里泽默(Robert Griesemer):曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript 引擎V8
save
8
Hello World
package main //声明本文件的package名
import "fmt" //import语言的fmt库——---用于输出
func main() { fmt.Println("Hello, World!")
}
// go run helloworld.go 实际是编译成二进制文件 再执行
// go build helloworld.go // ./helloworld
/* 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包, 如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。