我要偷偷的学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()
方法,输入了一个字符串为参数。
扩展阅读:
标签:golang,语言,fmt,我要,go,Go,惊呆,main 来源: https://blog.csdn.net/weixin_54707168/article/details/114776799