首页 > 编程语言 >go--第一个 go 程序、注释

go--第一个 go 程序、注释

时间:2023-10-26 22:23:11浏览次数:29  
标签:执行 package -- fmt 注释 go main

第一个 go 程序

前面已经搭建好了 go 的开发环境,这里来写一个 hello world 的程序,创建一个 main.go 的文件,代码如下

package main

import "fmt"

func main() {
	/* 这是我的第一个简单的程序 */
	fmt.Println("Hello, World!")
}

代码解释:

  • 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。

  • 下一行 import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。

  • 下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。

  • 下一行 /*...*/ 是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均以 /* 开头,并以 */ 结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。

  • 下一行 fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。
    使用 fmt.Print("hello, world\n") 可以得到相同的结果。
    Print 和 Println 这两个函数也支持使用变量,如:fmt.Println(arr)。如果没有特别指定,它们会以默认的打印格式将变量 arr 输出到控制台。

执行 go 语言

执行 go 代码,使用 go run 就可以运行,打开终端,进入到 main.go 的目录里面,执行下面的命令运行代码

go run ./main.go // 执行 go 代码

如果操作正确你将在屏幕上看到 "Hello World!" 字样的输出。

我们还可以使用 go build 命令来生成二进制文件:

go build ./main.go

生成二进制文件后,我们就可以执行了,这样的好处是可以让其他人去执行,哪怕其他人没有 go 环境,也可以执行

./main 

需要注意的是 { 不能单独放在一行,所以以下代码在运行时会产生错误:

package main

import "fmt"

func main()  
{  // 错误,{ 不能在单独的行上
    fmt.Println("Hello, World!")
}

注释

注释不会被编译,每一个包应该有相关注释。

单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均以 /* 开头,并以 */ 结尾。如:

// 单行注释

/*
 go 教程
 我是多行注释
 */

 

标签:执行,package,--,fmt,注释,go,main
From: https://www.cnblogs.com/zouzou-busy/p/16087990.html

相关文章

  • ROS2 foxy 单目相机标定方法(笔记本电脑摄像头)
    环境:Ubuntu20.04、ROS2foxy相机标定使用的是棋盘格的内部顶点,因此"12x9"的棋盘板,其内部顶点参数为"11x8"。安装ImagePipeline安装相机标定所需软件包:sudoaptinstallros-galactic-camera-calibration-parserssudoaptinstallros-galactic-camera-info-managers......
  • Illegal overloaded getter method with ambiguous type for property......
    问题原因建议1、boolean类型的属性值不建议设置为is开头,否则会引起rpc框架的序列化异常。2、如果强行将IDE自动生成的isSuccess()方法修改成getSuccess(),也能获取到Success属性值,若两者并存,则之后通过getSuccess()方法获取Success属性值。......
  • java项目树出现了红色时针标记,run mian方法时无反应
     java的左侧项目树出现了红色的时针标记,导致java类的代码中String、System等关键字出现红色错误, 解决办法,右键src--markdirectoryas--sourceroot,即可  后续问题:runmian方法时无反应逻辑、配置等都没问题,就是死活没反应。看来一堆教程也没个有用!!! 直接关掉项......
  • SP4082 MBLAST - BLAST 题解
    几万年前做的dp题了,有亿点点水题意简述求一个字符串添加多少个空格距离最小解法求距离最小,可以考虑动规,其实这题的写法和最长公共子序列的写法类似。我们设\(f(i,j)\)表示\(a[1]\sima[i]\)和\(b[1]\simb[j]\)的距离不加空格的时候为\(f(i,j)=f(i-1,j-1)+\le......
  • 小莫的计数(简单版本)
    链接:I-小莫的计数(简单版本)_2023新疆大学新生赛(nowcoder.com)困难版本不会写就不放出来了  题意:给你m个约束,b前字符不能是a,长度为n的字符串有多少种不同方式 set里存约束关系,两个for遍历找满足的条件voidsolve(){mp['M']=0;mp['O']=1;mp['N']......
  • Python 继承和子类示例:从 Person 到 Student 的演示
    继承允许我们定义一个类,该类继承另一个类的所有方法和属性。父类是被继承的类,也叫做基类。子类是从另一个类继承的类,也叫做派生类。创建一个父类任何类都可以成为父类,因此语法与创建任何其他类相同:示例,创建一个名为Person的类,具有firstname和lastname属性以及一个printn......
  • 长程 Transformer 模型
    Tay等人的EfficientTransformerstaxonomyfromEfficientTransformers:aSurvey论文本文由TevenLeScao、PatrickVonPlaten、SurajPatil、YacineJernite和VictorSanh共同撰写。每个月,我们都会选择一个重点主题,阅读有关该主题的最近发表的四篇论文。然后,我......
  • PAT 甲级【1012 The Best Rank】
    本题用java极容易超时,提交了好几次才成功另外9088777750,名次应该是12335,不是12334 importjava.io.*;publicclassMain{@SuppressWarnings("unchecked")publicstaticvoidmain(String[]args)throwsIOException{StreamTokenizer......
  • HUSTFC 2023游记+补题
    前情提要:好好好,我退役后又复活了和两位Cu大佬组了个队打暑假多校,然后ICPC网络赛被薄纱了两场为了奖品HUST唯一的新生ICPC名额打的新生赛还拉了个高中的无辜同学来接受阿克曼的制裁,我有罪比赛:开场开到了K,进行一个莫名其妙的拼手速,4min过了,但是输了几秒没拿到一血然后看榜有......
  • Excel设置日期格式没有反应
    1. 问题描述   将某一列转换为格式,发现怎么转换都不成功。   例如:想把10/20/231:40 转换成2023-10-201:40  却无法转换成功2. 解决方法   网上说的数据分列啥的方法都不好使,简单粗暴一点,直接利用DATE函数来解决即可。(1)第一步:       ......