我要偷偷的学Go语言,然后惊呆所有人(第一天)

标题无意冒犯,就是觉得这个广告挺好玩的
上面这张思维导图喜欢就拿走

目录

什么是Go语言

打开Go语言的官网我们可以看到这样一句话:

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

显然这句话中有三个关键字:简单,可靠,高效。

1.1 简单

Go语言的哲学,是简简单单的一句话:

Less is more.

Less is more. 这句话来源于Rob Pike(Go语言的创造者之一)在2012年的6月份的演讲Less is exponentially more.,这个演讲直译成中文的意思是:“少是指数级的多”,意译过来则是大道至简

Go语言相信越是简单的东西(语义,规则等等…)越是比复杂的东西更加强大。(事实上,开发Go语言的契机,正是Google公司请了一些人,来给员工讲解C++ 0x相比较之前的一些新的特性。Rob和Ken还有Robert也在听讲的人群当中。它们认为C++想要让自身变得更好的途径不应该是增加更多的特性,而是应该减少不必要的东西。)

Go想要这样做:使用足够简单的方式来解决一切问题。并且它做到了。Go语言的语法规范和C++相比简直不值一提。

扩展阅读:

1.2 可靠
mvn   archetype:generate  -DarchetypeGroupId=org.apache.flink  -DarchetypeArtifactId=flink-quickstart-java  -DarchetypeVersion=1.10.0

在Go语言被设计的第一天,就有这样一个想法:以C语言作为起点。(虽然最后没这么做)

当程序员使用Go语言进行编程时,不需要像C语言的程序员那么提心吊胆去用心管理内存(这么说会显得使用其他编程语言的程序员不用心,但是事实上和C语言的管理内存相比,其他的工作真的只是小儿科)。Go语言会自动帮程序员管理内存,当然,程序员也还是要去在意类似于空指针,边界条件的判断等等(不用心管理内存并不代表不用脑子!)。

当然这个世界上的能够自动管理内存的编程语言不止一种,但是在当今的世界上对于内存不安全的语言是没有活路的。

扩展阅读:

1.3 高效

也许Go语言是你人生中接触的第一门编程语言(我相信在不久的将来这个会变成现实的!)但是在现在(2019年)还是不太可能的,也就是说绝大多数人是因为Go语言的特性,或者说不得已的需求而接触的这门编程语言。

如果你是因为被Go语言的特性所吸引,那么你一定听说过一下几个关键词:静态强类型可编译高并发

静态语言所带来的好处是在开发时的高效:编辑器可以有足够好的代码补全功能,很好的语法和类型检查,虽然和动态弱类型语言相比较,短期的开发时间较长,但是比动态语言更适合开发大型项目,且更加利于后期的维护,也就是说从长远的角度看是效率更好的。

以前的单CPU时代,人们尚且知道划分CPU时间片来进行并发(不是真正的并行计算,而是宏观上的并发),在计算能力更加发达的今天,多计算单元、多核心、多机器已经是司空见惯的模式了,在这个时候,Go语言继承自CSP、扎根于语言深部的高并发特性使之能够被称为是“二十一世纪编程语言”。而关于并发的部分会在后面介绍。

扩展阅读:


Go语言的安装

不怎么用Windows,所以暂时只有Linux/Ubuntu 18.04的安装

2.1 Linux/Ubuntu 18.04

① 获取最新的golang安装源,并且更新到apt中
add-apt-repository ppa:longsleep/golang-backports

② apt更新
apt-get update

③ 安装golang
sudo apt-get install golang-go

④ 使用version查看版本
go version

2.2 关于环境变量:

GOROOT: Go语言编译、工具、标准库等的安装路径。
GOPATH:Go语言的工作目录。

2.3 良好的目录结构:
go/
├── bin
├── pkg
└── src
    ├── github.com
    │   ├── Muxi-X
    │   ├── ...
    │   └── ShiinaOrez
    │       ├── goProject1 <- 你的仓库
    │       └── ...
    ├── golang.org
    └── ...

开始我们的第一个例子

众所周知,第一个例子永远是Hello(World之类的),我们也是一样的。

你的代码应该位于golang的工作目录下

创建一个文件:hello.go或者叫什么都无所谓,只要是.go文件就可以。

文件的内容如下:

package main

import "fmt"

func main() {
    fmt.Println("Hello, golang!")
}

保存,关闭,在文件目录下运行以下命令来直接运行

go run hello.go

或者使用编译成可执行文件的形式来运行:

go build -o hello && ./hello

然后会获得以下输出:

Hello, golang!
稍稍分析一下:

package关键字用来说明本文件是属于哪个包的,Go语言默认main包为运行或者编译的目标包。不然的话会引起以下错误:

go run: cannot run non-main package

import关键字用于导入我们运行时需要的包,在下文中使用了fmt.Println方法,所以需要导入fmt包。

然后我们使用func关键字声明了一个函数main,这是一个没有参数也没有返回值的函数,它将是程序的入口。

main函数中我们调用了fmt.Println()方法,输入了一个字符串为参数。

扩展阅读:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小夕Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值