Go 语言基础:包、函数、语句和注释解析

简介: 一个 Go 文件包含以下几个部分:包声明导入包函数语句和表达式看下面的代码,更好地理解它:

一个 Go 文件包含以下几个部分:

  • 包声明
  • 导入包
  • 函数
  • 语句和表达式

看下面的代码,更好地理解它:

例子

package main

import "fmt"

func main() {
    fmt.Println("Hello World!") }

例子解释

第 1 行: 在 Go 中,每个程序都是一个包的一部分。我们使用 package 关键字来定义它。在这个例子中,程序属于 main 包。

第 2 行: import ("fmt") 让我们导入包中的文件,包名为 fmt

第 3 行: 一个空行。Go 忽略空格。在代码中有空格会使它更易读。

第 4 行: func main() {} 是一个函数。任何在花括号 {} 内的代码都将被执行。

第 5 行: fmt.Println() 是从 fmt 包中提供的函数。它用于输出/打印文本。在我们的例子中,它将输出 "Hello World!"。

注意: 在 Go 中,任何可执行代码都属于 main 包。

Go 语句

fmt.Println("Hello World!") 是一个语句。

在 Go 中,语句是通过换行(按下回车键)或分号 ";" 分隔的。

按下回车键会在行末自动添加 ";"(不会显示在源代码中)。

左花括号 { 不能出现在行首。

注释

注释是在执行时被忽略的文本。

注释可用于解释代码,使其更易读。

注释还可用于在测试替代代码时防止代码执行。

Go支持单行或多行注释。

Go单行注释

单行注释以两个正斜杠(//)开头。

//和行尾之间的任何文本都将被编译器忽略(不会被执行)。

示例

// This is a comment
package main
import ("fmt")

func main() {
   
  // This is a comment
  fmt.Println("Hello World!")
}

以下示例在代码行末使用单行注释:

示例

package main
import ("fmt")

func main() {
   
  fmt.Println("Hello World!") // This is a comment
}

Go多行注释

多行注释以/*开头,以*/结尾。

/**/之间的任何文本都将被编译器忽略:

示例

package main
import ("fmt")

func main() {
   
  /* The code below will print Hello World
  to the screen, and it is amazing */
  fmt.Println("Hello World!")
}

提示: 使用哪种注释取决于您。通常,我们使用//进行短注释,使用/* */进行长注释。

用注释防止代码执行

您还可以使用注释防止代码被执行。

注释的代码可以保存以供以后参考和故障排除。

示例

package main
import ("fmt")

func main() {
   
  fmt.Println("Hello World!")
  // fmt.Println("This line does not execute")
}

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

相关文章
|
Go 开发者
Go语言包的组织与导入 -《Go语言实战指南》
本章详细介绍了Go语言中的包(Package)概念及其使用方法。包是实现代码模块化、复用性和可维护性的核心单位,内容涵盖包的基本定义、命名规则、组织结构以及导入方式。通过示例说明了如何创建和调用包,并深入讲解了`go.mod`文件对包路径的管理。此外,还提供了多种导入技巧,如别名导入、匿名导入等,帮助开发者优化代码结构与可读性。最后以表格形式总结了关键点,便于快速回顾和应用。
481 61
|
8月前
|
Java 编译器 Go
【Golang】(1)Go的运行流程步骤与包的概念
初次上手Go语言!先来了解它的运行流程吧! 在Go中对包的概念又有怎样不同的见解呢?
402 4
|
11月前
|
JSON 中间件 Go
Go语言实战指南 —— Go中的反射机制:reflect 包使用
Go语言中的反射机制通过`reflect`包实现,允许程序在运行时动态检查变量类型、获取或设置值、调用方法等。它适用于初中级开发者深入理解Go的动态能力,帮助构建通用工具、中间件和ORM系统等。
640 63
|
机器学习/深度学习 存储 算法
【LeetCode 热题100】347:前 K 个高频元素(详细解析)(Go语言版)
这篇文章详细解析了力扣热题 347——前 K 个高频元素的三种解法:哈希表+小顶堆、哈希表+快速排序和哈希表+桶排序。每种方法都附有清晰的思路讲解和 Go 语言代码实现。小顶堆方法时间复杂度为 O(n log k),适合处理大规模数据;快速排序方法时间复杂度为 O(n log n),适用于数据量较小的场景;桶排序方法在特定条件下能达到线性时间复杂度 O(n)。文章通过对比分析,帮助读者根据实际需求选择最优解法,并提供了完整的代码示例,是一篇非常实用的算法学习资料。
812 90
|
10月前
|
缓存 监控 安全
告别缓存击穿!Go 语言中的防并发神器:singleflight 包深度解析
在高并发场景中,多个请求同时访问同一资源易导致缓存击穿、数据库压力过大。Go 语言提供的 `singleflight` 包可将相同 key 的请求合并,仅执行一次实际操作,其余请求共享结果,有效降低系统负载。本文详解其原理、实现及典型应用场景,并附示例代码,助你掌握高并发优化技巧。
738 0
|
Go 持续交付 开发者
Go语言包与模块(module)的基本使用-《Go语言实战指南》
本章深入讲解Go语言中的包(Package)和模块(Module)概念。包是代码组织的最小单位,每个`.go`文件属于一个包,通过`import`实现复用;主程序包需命名为`main`。模块是Go 1.11引入的依赖管理机制,支持自动版本管理和私有/远程仓库,无需依赖GOPATH。通过实际示例,如自定义包`mathutil`和第三方模块`gin`的引入,展示其使用方法。常用命令包括`go mod init`、`go mod tidy`等,帮助开发者高效管理项目依赖。最后总结,包负责功能划分,模块实现现代化依赖管理,提升团队协作效率。
491 15
|
存储 自然语言处理 算法
【LeetCode 热题100】208:实现 Trie (前缀树)(详细解析)(Go语言版)
本文详细解析了力扣热题 208——实现 Trie(前缀树)。Trie 是一种高效的树形数据结构,用于存储和检索字符串集合。文章通过插入、查找和前缀匹配三个核心操作,结合 Go 语言实现代码,清晰展示了 Trie 的工作原理。时间复杂度为 O(m),空间复杂度也为 O(m),其中 m 为字符串长度。此外,还探讨了 Trie 的变种及应用场景,如自动补全和词典查找等。适合初学者深入了解 Trie 结构及其实际用途。
555 14
|
SQL 运维 监控
高效定位 Go 应用问题:Go 可观测性功能深度解析
为进一步赋能用户在复杂场景下快速定位与解决问题,我们结合近期发布的一系列全新功能,精心梳理了一套从接入到问题发现、再到问题排查与精准定位的最佳实践指南。
|
存储 机器学习/深度学习 缓存
🚀 力扣热题 394:字符串解码(详细解析)(Go语言版)
文章提供了两种解法:栈结构和递归解法。栈解法通过维护数字栈与字符串栈,依次处理 `[` 和 `]`,构造解码结果;递归解法则利用函数调用逐层解析嵌套结构。两者时间复杂度均为 $O(n)$,空间复杂度也为 $O(n)$。栈解法直观易懂,适合初学者;递归解法优雅简洁,适合处理深度嵌套规则。掌握这两种方法,可灵活应对类似问题,提升解题能力。
506 11
|
存储 算法 安全
基于 Go 语言的公司内网管理软件哈希表算法深度解析与研究
在数字化办公中,公司内网管理软件通过哈希表算法保障信息安全与高效管理。哈希表基于键值对存储和查找,如用户登录验证、设备信息管理和文件权限控制等场景,Go语言实现的哈希表能快速验证用户信息,提升管理效率,确保网络稳定运行。
280 0

推荐镜像

更多
  • DNS