IT@程序员猿媛go 学习笔记Go on way

go 学习笔记之初识 go 语言

2019-07-21  本文已影响1人  雪之梦技术驿站
go-index-gopher.jpg

Go 是一种开源编程语言,可以轻松构建简单,可靠,高效的软件.

摘录自 github: https://github.com/golang/go,其中官网(国外): https://golang.org 和官网(国内): https://golang.google.cn/

GoGoogle 公司推出的静态强类型,编译型,并发型,并具有垃圾回收功能的开源编程语言,最初由 Robert Griesemer , Rob Pike ,Ken Thompson 三人主持开发,后来陆续加入其他开发者,最终于 2009 年 11 月正式开源.

创始人都是大神

Go 的三位主要创始人分别是: 罗伯特·格瑞史莫(Robert Griesemer),和肯·汤普逊(Ken Thompson)

JS V8 引擎,Chubby ,Java HotSpot 虚拟机,Sawzall 语言和 Strongtalk 系统

go-index-robert-griesemer.jpg

github: https://github.com/griesemer

Plan 9 操作系统和UTF-8 编码

go-index-Rob-pike.png

github: https://github.com/robpike

UNIX 操作系统 ,Plan 9 操作系统,B 语言,UTF-8 编码

go-index-thompson.jpg

github: https://github.com/ken

如此厉害的三位大牛合作创作的 Go 语言还能差到哪里去呢?

go-index-creator.jpg

吉祥物也很可爱

原来的 logo 是一只可爱的囊地鼠,英文名叫 gopher.

go-index-logo-old.png

新的 logo 是现代化图标,代表更快更强,体现速度和效率.

go-index-logo-new.png

网上流传甚广的一组很萌很可爱的吉祥物,并附上 github 链接: https://github.com/tenntenn/gopher-stickers

go-index-logo-gopher-stickers.png

体验 go 语言魅力

fmt.Println("Hello, 世界") : 输出字符串并换行

package main

import "fmt"

func main() {
  fmt.Println("Hello, 世界")
}
go-index-helloworld.png

a, b = b, a : 互换变量ab 的值,而其他语言一般都需要引入临时变量.

package main

import "fmt"

func main() {
    var a = 3
    var b = 4
    fmt.Println(a, b)
    a, b = b, a
    fmt.Println(a, b)
}
go-index-exchange.png

go + chan 关键字轻松完成并行计算

package main

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(pi(5000))
}

func pi(n int) float64 {
    ch := make(chan float64)
    for k := 0; k <= n; k++ {
        go term(ch, float64(k))
    }
    f := 0.0
    for k := 0; k <= n; k++ {
        f += <-ch
    }
    return f
}

func term(ch chan float64, k float64) {
    ch <- 4 * math.Pow(-1, k) / (2*k + 1)
}
go-index-concurrentpi.png

到底好用不好用

Go 语言是云计算时代的 C 语言也称为21 世纪的 C 语言,由此可见,Go 的地位非同一般.

Go 语言的诞生是为了提高生产效率,专门对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全,支持并行进程.

运行效率高是因为编译性语言与解释性语言相比,开发高效是语法简单,部署简单是直接部署编译后的程序.

不同于 php,只需要 go 配合 channel 即可完成进程或线程所做的工作.

类似 Java 虚拟机支持垃圾回收,不必手动进行内存管理.

学习成本低,语法简单但表达能力强,支持函数式编程,面向对象编程等多种编程范式.

不同的人有不同的代码风格,可转化统一风格

志同道合有几人

go-index-docker.png

https://www.docker.com/

go-index-k8s.png

https://kubernetes.io/

go-index-etcd.png

https://etcd.io/

go-index-baidu-netdisk-downloaderx-BND2.png

https://github.com/b3log/baidu-netdisk-downloaderx

go-index-pan-light.png

https://github.com/peterq/pan-light

自学技术哪家强

自问自答解疑惑

gogolang 的简称,golanggo language 的缩写,即 go 语言.

独立集成工具主要有 LiteIDEGoLand 两种,但是常见 IDE 基本上均提供各种 Go 插件,支持 Windows ,MacOSLinux 常见操作系统.

Beego ,IrisGin 等,国人用的比较多是 Beego,目前资料也比较齐全.

无总结不成文章

GoGoogle 出品的开源编程语言,出身名门注定不凡,并且拥有十分活跃的社区环境.

国内使用 Go 语言比较早的公司主要有七牛云和 beego,其中七牛云主要是云存储方面的业务,这也正是 Go 支持高并发分布式的特色,而 BeegoGoWeb 开发框架,支持 MVC 编程模型,不愧是国人开发深受国人喜爱.

同时,今年著名的 bilibili 源代码泄露事件也让我们看到了 Go 的身影,侧面说明了 Go 越来越流行,不愧是 21 世纪的 C 语言啊!

好了,暂时没有别的废话了,本文到此为止,下一章将开始介绍 Go 语言的环境搭建与 IDE 的基本配置,敬请期待.

上一篇 下一篇

猜你喜欢

热点阅读