前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go那些事之HelloWorld结构

Go那些事之HelloWorld结构

作者头像
公众号guangcity
发布2020-03-11 11:02:18
2920
发布2020-03-11 11:02:18
举报
文章被收录于专栏:光城(guangcity)光城(guangcity)

Go那些事之HelloWorld结构

0.导语

本节开始后续将更新Go系列文章。

本节主要阐述一个HelloWorld例子与C/C++、JAVA的不同之处,并加深学习理解。

1.运行与编译

可以直接通过go run来运行:

代码语言:javascript
复制
go run xxx.go

也可以类似于C/C++编译成二进制文件xxx,然后执行该二进制文件:

代码语言:javascript
复制
go build xxx.go

2.应用程序入口

在C/C++中入口是main函数,在JAVA中也是main函数,而Go也是,但与JAVA不同之处在于必须是main包!

  • 1.必须是main包 package main
    • 与Java的package 不同Go的package与文件路径没有关联
  • 2.必须是main方法:func main
  • 3.文件名不一定是 main.go

3.退出返回值

C/C++都支持返回值,可是Go不支持!必须通过os.Exit来返回状态!

代码语言:javascript
复制
os.Exit(code)

4.获取命令行参数

C/C++支持传入命令行参数,例如:

代码语言:javascript
复制
int main(int argc,char* argv[])

那么Go呢,是不支持的,没有下面这样写法!

代码语言:javascript
复制
function main(arg []string) {

}

那如何在main函数中获取输入的命令行参数呢?

那就得用os.Args来获取,它返回一个数组,第一个参数为build的二进制文件路径,后面为输入的参数。

  • 1.main函数不支持传入参数
  • 2.在程序中通过os.Args获取命令行参数

5.编写一个HelloWorld

基于以上原则,我们编写出下面带返回值的且接收输入参数的HelloWorld程序:

代码语言:javascript
复制
package main

import (
	"fmt"
	"os"
)
func main() {
	if len(os.Args) >1 {
		fmt.Println("Hello World",os.Args)  // os.Args返回的是一个数组 第一个参数编译后的二进制文件 后面是依次输入的参
	}
	os.Exit(-1)  // 异常退出 -1 正常退出0
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Go那些事之HelloWorld结构
    • 0.导语
      • 1.运行与编译
        • 2.应用程序入口
          • 3.退出返回值
            • 4.获取命令行参数
              • 5.编写一个HelloWorld
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档