Go入门

从今天开始用博客记录学Go语言的过程,为什么要学Go语言呢?网上已经有很多资料表明Go语言的优势。

所以在这里Go语言的优势便不再一一表明,编程界的高富帅,语法简单,编译速度快,自带gc(垃圾回收),出身名门,等等。

Go语言的安装环境这里不再赘述,直接开始进入程序部分。

package main

import "fmt"

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

作为码农的仪式感,学一门新语言不写Hello World感觉好像没学,这里当然是先来一波。

那么如何能够使得这段代码跑起来呢?Go语言作为一门编译型语言,Go语言的工具链将源码和其依赖一起打包,生成机器的本地指令,就是静态编译。Go语言提供的工具可以通过go命令下的一系列子命令来调用。最简单的就是run。这个命令会将一个或多个文件名以.go结尾的源文件,和关联库链接到一起,然后运行最终的可执行文件。

go run helloworld.go

毫无疑问,我们会得到想要的Hello, world。

但是这个命令下,我们就直接运行了程序的结果,那么如何得到编译后的二进制文件呢?我们用以下命令来实现:

go build helloworld.go

Go语言的代码是通过package来组织的,package的概念和libraries或者modules概念比较类似。一个package会包含一个或多个.go结束的源码文件。package main这行声明语句表示该文件是属于哪一个package,紧跟着是一系列import的package名,表示这个文件中引入的package。再之后是本文件本身的代码。

另外比较值得一说的是,Go语言编译过程没有警告信息,所以不遵循规范就会直接报错。

和其他语言一样,Go语言也存在命令行参数,操作方式存在于os这个package里,它提供了操作系统无关的,与系统交互的一些函数和相关变量,运行时程序的命令行参数可以通过os包中一个叫Args的变量来获取。

我们尝试用这个包来实现Linux里echo命令的模拟实现:

package main

import(
	"fmt"
	"os"
)

func main() {
	var s, sep string
	for i := 1; i < len(os.Args); i++ {
		s += sep + os.Args[i]
		sep = " "
	}
	fmt.Println(s)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值