1、Go语言的基础组成有以下几个部分:

  • 包声明
  • 引入包
  • 函数
  • 变量
  • 语句与表达式
  • 注释

2、接下来看下一个简单的测试代码:

/*
这是我的测试程序
*/
package mainimport "fmt"func main(){var s = "Test Program"fmt.Println(s)
}

3、代码解析

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

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

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

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

(5)、下一行 var s = "Test Program" 是定义一个变量s,默认为字符串Test Program。

(6)、下一行 fmt.Println(s) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。

使用 fmt.Print("hello, world\n") 可以得到相同的结果。

Print 和 Println 这两个函数也支持使用变量,如:fmt.Println(arr)。如果没有特别指定,它们会以默认的打印格式将变量 arr 输出到控制台。

(7)、当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )

4、当把上面代码改成如下代码时:

/*
这是我的测试程序
*/
package mainimport "fmt"func main()
{var s = "Test Program"fmt.Println(s)
}

执行go run rest.go后,如下图所示:

原因:main函数的 { 单独放在一行了,需要注意的是 { 不能单独放在一行,否则会报错。

5、执行go程序,使用命令go run test.go即可

6、编译构造go程序,使用命令go build test.go即可,使用后,windows底下将会出现一个test.exe可执行问题,命令行执行test变输出Test Program,如下图所示:

7、以上内容仅供学习参考,谢谢!

Go学习笔记(二)Go语言结构相关推荐

  1. GEE(Google Earth Engine) 最基础代码学习笔记二 —— JavaScript 语言

    GEE(Google Earth Engine) 学习笔记二 Javascript 语言 1. 注释 print('Hello World!'); 如果要注释,则在代码前面加//,比如: // pri ...

  2. Go:【学习笔记】Go 语言结构

    1 Go 语言结构 在我们开始学习 Go 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构. Go Hello World 实例: Go 语言的基础组成有以下几个部分: 包声明 引 ...

  3. HTML5(李炎恢)学习笔记二 ------------- HTML5的结构

    先从HTML5的文档结构谈起: 这些基础元素确定了HTML文档的轮廓以及浏览器的初始环境.几乎所有页面都必须首先键入这些元素. 一.HTML5文档结构: <!DOCTYPE html> / ...

  4. 【C/C++学习笔记】C语言结构体指针的输入输出

    简单构造一个结构体实例如下: struct student {char name[20];int score; }; 1.指向结构体变量 int main() {struct student st1; ...

  5. cypress学习笔记二:目录结构及登录测试用例

    cypress安装完成后,通过编译器打开cypress的安装目录,可以看到如下结构 integration 一般测试用例会写在integration下面,可以在此文件夹下面新建目录方便管理用例,也可以 ...

  6. [UVMC]UVMC学习笔记之跨语言作用域的config操作

    UVMC学习笔记二 --- 跨语言作用域的config操作 前言:UVMC引入了特定的内存共享方法,可以在UVM/SystemVerilog与SystemC模块之间传递记名的半全局变量,在使用方式上类 ...

  7. 嵌入式系统设计师学习笔记二十八:嵌入式程序设计③——高级程序设计语言

    嵌入式系统设计师学习笔记二十八:嵌入式程序设计③--高级程序设计语言 解释程序和编译程序 编译器的工作阶段示意图 语法错误:非法字符,关键字或标识符拼写错误 语法错误:语法结构出错,if--endif ...

  8. 《Go语言圣经》学习笔记 第二章 程序结构

    Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...

  9. uniapp 学习笔记二十二 购物车页面结构搭建

    uniapp 学习笔记二十二 购物车页面结构搭建 cart.vue <template><view><view class="flex padding" ...

  10. 二维码学习笔记(二) | 数据分析与数据编码

    唠唠闲话 二维码笔记系列(原文地址): 『二维码学习笔记(一) | 二维码概述』 『二维码学习笔记(二) | 数据分析与数据编码』 『二维码学习笔记(三) | 纠错编码』 『二维码学习笔记(四) | ...

最新文章

  1. 2022-2028年中国汽车橡胶密封件行业市场深度分析及发展趋势分析报告
  2. Visual SourceSafe简明培训教程
  3. 改善AI性别偏见的4种方法 | CSDN博文精选
  4. 七猫php面试,七猫面试 - osc_2frv0wjp的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. 语音识别数据集处理python进行音频处理
  6. poj 1821 fence
  7. SAP云平台ABAP编程环境免费账号使用过程中的一些问题
  8. python 建筑计算_制图小技巧:巧用Python和ELK瞬间完成总图建筑名称标注
  9. 用python实现时间的动态(动态时钟)+ 算出某年某月星期几的所有日期
  10. jdbc mysql 源码_【JDBC系列】从源码角度理解JDBC和Mysql的预编译特性
  11. 转发文章最多的朋友可以免费进入价值99元的《湾区AI精英会》海归圈子
  12. 李佳琦公益助力乡村教育 为学生送上开学礼物
  13. 电脑故障,usb驱动安装失败如何修复解决方案-驱动人生
  14. Java小游戏:模仿微信群发红包
  15. 高中数学相关的专业术语
  16. composer 安装laravel 5.5 苹果终端
  17. CDMA sid, nid, bid 含义解释
  18. FofaMap云查询版
  19. 软件工程毕业设计课题(73)微信小程序毕业设计PHP菜谱美食小程序系统设计与实现
  20. 一些比较好的流体力学视频

热门文章

  1. 服务器项目白名单设置
  2. datatables中的Options总结(2)
  3. 单点登录的原理与简单实现
  4. [React] 尚硅谷 -- 学习笔记(一)
  5. [Node.js] 模块化 -- http服务器模块
  6. 基于CSS3实现闪光条效果
  7. HTML5 音视频操作
  8. 入门机器学习(六)--课后作业解析-logistics回归(python实现)
  9. 7-207 排序 (25 分)
  10. php smarty php函数,smarty中使用php函数的方法