Golang初级系列教程-手把手编写 Hello World
来源:互联网 发布:大数据量表设计 编辑:程序博客网 时间:2024/05/22 21:57
手把手编写 Hello World
创建文件 program1.go
,不写入任何内容。按照如下的命令尝试进行编译
cmd-prompt>
go run program1.go
将会打印出如下错误:
package :program1.go:1:1: expected 'package', found 'EOF'
在Go
语言中,所有文件必须隶属于某一个包。当前,只需要理解在文件的头部声明一个package name
就可以了,其中package
为关键字,name
为你自己起的一个包名字。
在大型的程序中,包可以很好的有条理的组织各种功能。
例如,如果你想写一个关于交通工具的虚拟模型,你应该把所有属于car
的模型放入一个叫做cars
的包中,把所有属于bus
的模型放入buses
的包中。
组织相关的功能只是包的一种用途,在后续文章中会讲述更多内容。
现在让我们在刚刚创建的文件中添加一条语句,之后重新执行命令
program1.go内容
package main
执行之前的命令之后,会打印如下错误:
runtime.main: undefined: main.main
Go
程序启动时,需要在文件中有一个可标识入口。就像汽车必须有一把启动点火的钥匙、电脑需要有一个开机键,Go
程序中需要有一个main
函数。
在文件中添加另外一行,并且重试
program1.go内容
package mainfunc main() {}
执行命令go run program1.go
程序正确执行,但是由于我们没有做任何其它操作,程序很快就退出了。
恭喜恭喜,到目前为止,我们已经创建了自己的第一个程序。虽然没啥卵用,但是已经可以正常运行了。
让我们继续添加一行
program1.go内容
package mainfunc main() { Println("Hello world")}
尝试运行,将会打印如下错误
program1.go:4: undefined: Println
Println
是向屏幕输入内容。执行命令之后,编译器报未定义。为什么呢?可记得前面提到的包?对喽,这里我们就需要用到包了。像Println
这样的函数存放在某些包中。然而,当前这些包由于我们没有主动引入,但不能使用滴。如果我们需要使用这些包中的功能,首先需要import
它们。这就像我们从海外购入汽车一样一样的。Ok,让我们import
试试。
函数Println和其它读写文本和字符的函数,都存放在一个叫做fmt
的包中——formatting
的缩写
Go程序语言遵从短小精悍。如果你写Java代码,你会以一个很长的命名方式进行定义。比如上面的
formatting package
会很正常的被叫做formatting
。但是在Go语言中,就要打破这种常规,追求精简。开始的时候,并不能适应这种模式,但是使用过一段时间之后,真尼玛太棒了。代码变得简洁了,阅读起来更快了,奇怪的是也没有降低可读性。个人观点哦~~~
至此,让我们在添加几行代码
package mainimport "fmt"func main() { fmt.Println("Hello world")}
运行程序go run program1.go
,输出如下:
Hello world
哇哦,是不是很神奇,我们只是在package
下面添加了一个import
语句,第一个Go程序已经正常运行了。import
之后,Println
可以通过 包名.
的方式进行调用。知道了吧,就这么简单。
Golang一种神奇的语言,让我们一起进步
- Golang初级系列教程-手把手编写 Hello World
- Golang初级系列教程-Struct
- Golang初级系列教程-接口
- Golang教程:(二)Hello World
- Golang初级系列教程-安装配置
- Golang初级系列教程-常见错误
- Golang初级系列教程-内存变量指针
- Golang初级系列教程-控制结构-ifelse
- Golang初级系列教程-继承和子类
- Golang初级系列教程-多重继承
- Golang初级系列教程-接口2
- Golang初级系列教程-接口多态性
- Golang初级系列教程-面向对象总结
- golang example Hello World
- Golang 入门Hello World
- Arduino系列教程-01 Hello World!
- Netty4.x中文教程系列 Hello World
- angular2系列教程(一)hello world
- ListView与GridView的属性讲解
- js this指针绑定问题 及闭包小析
- js 选项卡
- Android设备 xp sp dp dip px 的换算和理解
- 设计模式-抽象工厂模式
- Golang初级系列教程-手把手编写 Hello World
- php 多重继承的替代方案trait
- 最近的状态不好
- 一步一步学习Angular2(03.示例 MASTER/DETAIL)
- GitLab/Git在AndroidStudio上的使用
- 【leetcode】:Length of the LastWord
- Android 开发过程中遇见的奇葩的bug
- 怎么样在svn根目录添加一个工程
- xilinx 音频技术参考