Go语言学习(一):hello world

每学一门语言,程序猿们总是不厌其烦地写一遍hello world,这篇就是Go语言的hello world。

Go语言的环境搭建建议参考《Go Web编程》的第一章:Go 环境配置,里面写得足够详细。如果觉得《Go Web编程》里面写得太繁琐,也可以看官网的Getting Started。

环境搭建好之后,就可以在GOPATH的目录下新建src、pkg、bin这三个目录了。这三个目录的用途如下:

  1. src:存放源代码
  2. pkg:存放编译后生成的文件,个人理解是类似于Java中存放jar包的lib目录。
  3. bin:存放编译后生成的可执行文件

在src目录下新建helloworld目录,类似于一个project的名称吧,当然,正规点的话就在src目录下新建com.XXX目录,然后在com.XXX目录下再新建helloworld目录。

在helloworld目录下新建helloworld.go文件,在文件中输入下面的代码:

?

package main
 
import "fmt"
 
func main() {
    fmt.Printf("hello, world!\n")
}

命令行窗口进入到helloworld目录,键入命令:go run helloworld.go,就会返回结果:

?

hello, world!

Go使用package来组织代码。代码中第一行package <pkgName>告诉我们当前文件属于哪一个包,而源码中的main则告诉我们它是一个可独立运行的包,它编译后会产生可执行文件。除了main包之外,其他包编译后会产生*.a文件(也就是包文件)并放置在$GOPATH/pkg/$GOOS_$GOARCH目录下(我的是:D:\GO_DATA\pkg\windows_amd64)。

此外,每一个可独立运行的Go程序,必定包含一个package main,而且在这个main包中必定包含一个入口函数main,这个函数既没有参数,也买有返回值。

个人疑问,入口函数没有参数,那要写一个带外部参数的可运行程序该怎么写?举个例子,假如go这个程序是用Go语言写的,那么go这个程序的main函数如何获得命令行中的参数从而执行不同的操作,如上文的命令:“go run helloworld.go”。

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2015-12-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Enterprise Library 4 数据访问应用程序块

Enterprise Library 数据访问应用程序块简化了实现常规数据访问功能的开发任务。应用程序可以在各种场景中使用此应用程序块,例如为显示而读取数据、传...

3206
来自专栏二进制文集

Java 虚拟机面试题全面解析(干货)

本文固定链接:https://www.zybuluo.com/Yano/note/321063 本文 PDF 下载:http://download.csdn....

1762
来自专栏码洞

深入Python多进程通信原理与实战——图文

继上节使用原生多进程并行运行,基于Redis作为消息队列完成了圆周率的计算,本节我们使用原生操作系统消息队列来替换Redis。

912
来自专栏技术小站

Python 多线程与多进程

原文地址:http://www.cnblogs.com/whatisfantasy/p/6440585.html

1262
来自专栏葡萄城控件技术团队

Asp.Net MVC4入门指南(2):添加一个控制器

MVC代表: 模型-视图-控制器 。MVC是一个架构良好并且易于测试和易于维护的开发模式。基于MVC模式的应用程序包含: · Models: 表示该应用程序的数...

1987
来自专栏Java后端技术栈

Java多线程编程-(18)-等待/通知模式接口Condition接口深入分析

在上述两篇文章中讲解AQS的时候,我们已经知道了同步队列AQS的内部类ConditionObject实现了Condition接口,使用ReentrantLock...

821
来自专栏python学习路

八、线程和进程 什么是线程(thread)?什么是进程(process)? 线程和进程的区别?Python GIL(Global Interpreter Lock)全局解释器锁

什么是线程(thread)? 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一...

4837
来自专栏友弟技术工作室

bash及其特性

1323
来自专栏java思维导图

【一分钟知识】进程与线程,Thread的sleep与wait

java思维导图 xmind导图配合精美文章,可视化学习,让java不再难懂。 进程与线程 进程 是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操...

3699
来自专栏阮一峰的网络日志

Node.js 命令行程序开发教程

一种编程语言是否易用,很大程度上,取决于开发命令行程序的能力。 Node.js 作为目前最热门的开发工具之一,怎样使用它开发命令行程序,是 Web 开发者应该掌...

4446

扫码关注云+社区

领取腾讯云代金券