Your SlideShare is downloading. ×
0
Go语言入        Sparkle
大纲1、什么是Go2、为什么我们要学习(使用)Go3、语法特性4、   始使用5、缺点
1、什么是Go
什么是GoGoogle于2009发布TIOBE 2009年度语言目前TIOBE排名50以外(吐槽)系统级语言并发语言
ECUGErlang China User GroupEffective Cloud User GroupECUG Con 2011,国内第一场以 Go 语言为主题的盛宴!
CERL 是我写的一个 C++ 程序库,取意于:Erlang ForC/C++。但最终其实 CERL 不是一个编程范式类似于Erlang 的东西,而更象是一个雏形版本的 Golang。                            ——...
我发现我花了四年时间锤炼自己用 C 语言构建系统的能力,试图找到一个规范,可以更好的编写软件。结果      发现只是对 Go 的模仿。                      ——云风
目前状态Go1已经发布(第一个稳定版)
2、为什么我们要学习
只用一   语言的攻城师不
为什么是Go多年Java经验熟悉Python、Ruby、Scala但觉得C/C++困难Go语言让我有机会接近系统
Go特性源自C(不是C++)编译速度gc特殊的面向对象简洁又   活的语法
3、语法特性
Hello, world!package mainimport "fmt"func main() {  fmt.Println("Hello, world!")}
deferfunc main() {  file := os.Open("hello.txt")  defer file.Close()    // use file}
错误func main() {	 file, err := os.Open("hello.txt")	 if err != nil {	 	 return	}	 defer file.Close()	 // use file}
常func main() {  defer func() {    if r := recover(); r != nil {      fmt.Println("recover", r)    }  }()    someFunc()}fun...
没有类type Vertex struct {  X, Y float64}func (v *Vertex) Abs() float64 {  return math.Sqrt(v.X*v.X + v.Y*v.Y)}func main() { ...
没有继承type Egg struct {	 weight int}type Animal struct {	 weight int}type Bird struct {	 Animal	 egg Egg}
接口type Abser interface {  Abs() float64}type MyFloat float64func (f MyFloat) Abs() float64 {  if f < 0 {    return float64...
并发
为什么不用锁模型锁的粒度不能太大死锁问题编程难度面对越来越多的CPU
Scala介绍中提到
类线程行为func main() {  go myFunc()    go func() {      // code    }()}
类Actor行为var ch = make(chan int)func myActor() {  data := <-ch  // use data}func main() {  go myActor()    ch <- 1}
纤程同步代码   步效果非抢占式单线程实现无线程切换,无锁理论上可以无限个(内存限制)
类纤程行为func myActor() {  data := <-ch    // some code    time.Sleep(100)    other := <-otherCh    // use data}
4、   始使用
安装(通过源码)$ hg clone -u release https://code.google.com/p/go$ cd go/src$ ./all.bash
安装http://code.google.com/p/go/downloads/list有Linux Mac FreeBSD Windows的二进制版brew install gohomebrew for MacGAE for Go
IDE暂无完整IDE
可以不需要IDE,因为Go构建包管理代码格式化通过gocode提供代码提示
编辑器EmacsVimSublime甚至Notepad
Sublime+GoSublime     +gocode通过Go命令进行包管理和构建语法加亮代码提示保存时自动格式化代码
Go命令go get 安装第三方类库go build 构建go run hello.go 编译并且运行
GAE for Go内置Go,直接使用保存自动编译不支持Windows直接   始Web 发
学习资源http://tour.golang.org/http://golang.org/doc/http://code.google.com/p/golang-china/http://www.mikespook.com/https://gi...
5、缺点
曾经的缺点构建工具IDEwindows支持
缺点第三方类库gc多CPU支持动态链接
谢谢weibo&twitter: sparklezengemail: popeast@gmail.comwebsite: http://weavesky.com
Golang
Golang
Upcoming SlideShare
Loading in...5
×

Golang

7,187

Published on

0 Comments
20 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,187
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
85
Comments
0
Likes
20
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "Golang"

    1. 1. Go语言入 Sparkle
    2. 2. 大纲1、什么是Go2、为什么我们要学习(使用)Go3、语法特性4、 始使用5、缺点
    3. 3. 1、什么是Go
    4. 4. 什么是GoGoogle于2009发布TIOBE 2009年度语言目前TIOBE排名50以外(吐槽)系统级语言并发语言
    5. 5. ECUGErlang China User GroupEffective Cloud User GroupECUG Con 2011,国内第一场以 Go 语言为主题的盛宴!
    6. 6. CERL 是我写的一个 C++ 程序库,取意于:Erlang ForC/C++。但最终其实 CERL 不是一个编程范式类似于Erlang 的东西,而更象是一个雏形版本的 Golang。 ——许式伟
    7. 7. 我发现我花了四年时间锤炼自己用 C 语言构建系统的能力,试图找到一个规范,可以更好的编写软件。结果 发现只是对 Go 的模仿。 ——云风
    8. 8. 目前状态Go1已经发布(第一个稳定版)
    9. 9. 2、为什么我们要学习
    10. 10. 只用一 语言的攻城师不
    11. 11. 为什么是Go多年Java经验熟悉Python、Ruby、Scala但觉得C/C++困难Go语言让我有机会接近系统
    12. 12. Go特性源自C(不是C++)编译速度gc特殊的面向对象简洁又 活的语法
    13. 13. 3、语法特性
    14. 14. Hello, world!package mainimport "fmt"func main() { fmt.Println("Hello, world!")}
    15. 15. deferfunc main() { file := os.Open("hello.txt") defer file.Close() // use file}
    16. 16. 错误func main() { file, err := os.Open("hello.txt") if err != nil { return } defer file.Close() // use file}
    17. 17. 常func main() { defer func() { if r := recover(); r != nil { fmt.Println("recover", r) } }() someFunc()}func someFunc() { panic("[fail]")}
    18. 18. 没有类type Vertex struct { X, Y float64}func (v *Vertex) Abs() float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y)}func main() { v := &Vertex{3, 4} fmt.Println(v.Abs())}
    19. 19. 没有继承type Egg struct { weight int}type Animal struct { weight int}type Bird struct { Animal egg Egg}
    20. 20. 接口type Abser interface { Abs() float64}type MyFloat float64func (f MyFloat) Abs() float64 { if f < 0 { return float64(-f) } return float64(f)}
    21. 21. 并发
    22. 22. 为什么不用锁模型锁的粒度不能太大死锁问题编程难度面对越来越多的CPU
    23. 23. Scala介绍中提到
    24. 24. 类线程行为func main() { go myFunc() go func() { // code }()}
    25. 25. 类Actor行为var ch = make(chan int)func myActor() { data := <-ch // use data}func main() { go myActor() ch <- 1}
    26. 26. 纤程同步代码 步效果非抢占式单线程实现无线程切换,无锁理论上可以无限个(内存限制)
    27. 27. 类纤程行为func myActor() { data := <-ch // some code time.Sleep(100) other := <-otherCh // use data}
    28. 28. 4、 始使用
    29. 29. 安装(通过源码)$ hg clone -u release https://code.google.com/p/go$ cd go/src$ ./all.bash
    30. 30. 安装http://code.google.com/p/go/downloads/list有Linux Mac FreeBSD Windows的二进制版brew install gohomebrew for MacGAE for Go
    31. 31. IDE暂无完整IDE
    32. 32. 可以不需要IDE,因为Go构建包管理代码格式化通过gocode提供代码提示
    33. 33. 编辑器EmacsVimSublime甚至Notepad
    34. 34. Sublime+GoSublime +gocode通过Go命令进行包管理和构建语法加亮代码提示保存时自动格式化代码
    35. 35. Go命令go get 安装第三方类库go build 构建go run hello.go 编译并且运行
    36. 36. GAE for Go内置Go,直接使用保存自动编译不支持Windows直接 始Web 发
    37. 37. 学习资源http://tour.golang.org/http://golang.org/doc/http://code.google.com/p/golang-china/http://www.mikespook.com/https://github.com/wonderfo/wonderfogo/wiki许式伟《Go语言编程》
    38. 38. 5、缺点
    39. 39. 曾经的缺点构建工具IDEwindows支持
    40. 40. 缺点第三方类库gc多CPU支持动态链接
    41. 41. 谢谢weibo&twitter: sparklezengemail: popeast@gmail.comwebsite: http://weavesky.com
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×