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

news2025/2/27 17:02:23

一个 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,或者扫描下方二维码,关注公众号,即可获取最新文章。

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1268161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nodejs 沙盒逃逸

1.[GFCTF 2021]ez_calc 一道很有意思的一道nodejs的题 沙箱逃逸和绕过: F12 看源码 if(req.body.username.toLowerCase() ! admin && req.body.username.toUpperCase() ADMIN && req.body.passwd admin123){ // 登录成功&am…

sqli-labs靶场详解(less32-less37)

宽字节注入 原理在下方 目录 less-32 less-33 less-34 less-35 less-36 less-37 less-32 正常页面 ?id1 下面有提示 获取到了Hint: The Query String you input is escaped as : 1\ ?id1 看来是把参数中的非法字符就加上了转义 从而在数据库中只能把单引号当成普通的字…

顺丰JAVA开发一面—面试实战经验分析【已通过】

文章目录 面试总结面试开始项目相关基础知识反问环节 顺丰JAVA开发一面面试过程中的问题确实涵盖了很多方面,从项目架构到基础知识再到具体技术细节都有所涉及。 面试官的提问风格也是比较开放的,注重考察面试者的深度理解和解决问题的能力。以下是对每个…

彩虹云商城搭建教程+源码程序

前言:域名服务器或宝塔主机商场程序在线云商城 随着电子商务的快速发展,越来越多的企业开始意识到开设一个自己的电子商城对于销售和品牌推广的重要性。然而,选择一家合适的网站搭建平台和正确地构建一个商城网站并不是一件容易的事情。本文…

基于Qt MP3音频播放器示例(可制作音频播放器)

​本次MP3文件也给出来,方便大家调试。话不多说直接上源码。 整个项目下载地址:CSDN:GetCode 昵称-》Qt魔术师:https://gitcode.com/m0_45463480/QtMP3/tree/main## .pro # 指定项目类型为应用程序。TEMPLATE = app# 指定项目的名称为musicplayerTARGET = musicplayer# 添…

八、hdfs文件系统副本块数量的配置

1、配置方式 2、实际操作演示 (1)在Hadoop用户的根目录下创建text.txt文件 (2)上传文件 hadoopnode1:~$ hdfs dfs -ls hdfs://node1:8020/ Found 4 items drwxr-xr-x - hadoop supergroup 0 2023-11-21 23:06 hdfs:/…

手势识别4:C/C++实现手部检测和手势识别(含源码下载)

手势识别4:C/C实现手部检测和手势识别(含源码下载) 目录 手势识别4:C/C实现手部检测和手势识别(含源码下载) 1. 前言 2. 手势识别模型(YOLOv5) (1)手势识别模型训练 (2)将Pyto…

Java 最全面试总结——3.多线程篇

1、说说Java中实现多线程有几种方法 创建线程的常用三种方式: 继承Thread类实现Runnable接口实现Callable接口( JDK1.5> )线程池方式创建 通过继承Thread类或者实现Runnable接口、Callable接口都可以实现多线程,不过实现Run…

基于合成数据的行人检测AI模型训练

在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 近年来,自动驾驶汽车因其对社会的广泛影响而越来越受欢迎,因为它们提高…

乱序学机器学习——主成分分析法PCA

文章目录 概览PCA核心思想和原理PCA求解算法PCA算法代码实现降维任务代码实现PCA在数据降噪中的应用PCA在人脸识别中的应用主成分分析优缺点和适用条件优点缺点适用条件 概览 PCA核心思想和原理 PCA求解算法 特征向量表示分布的方向,特征值表示沿着个方向分布的程度…

自动锁螺丝机配件直线模组的作用

直线模组的应用非常广泛,在各种需要高精度、高效率的自动化直线运动的场合都有应用,尤其是在自动锁螺丝机中,起着关键性作用。 1、提供精确的定位和导向:在自动锁螺丝机中,螺丝的拧紧和输送都需要精确控制,…

SpringCloudSleuth+Zipkin 整合及关键包汇总

背景 整合了一下 SpringCloudSleuth Zipkin,本来是很简单的东西,但是最终导出依赖包时没注意,导致目标服务上始终没有纳入 Zipkin 的链路追踪中,本文记录这个过程及关键依赖包。 部署zipkin 官网下载最新的 zipkin 可执行包&a…

Java高级技术(反射的作用与应用场景)

一,放射 二,案例 (1),题目 (2),反射类 (3),测试类

JavaScript编程进阶 – Return语句

JavaScript编程进阶 – Return语句 JavaScript Programming Advanced – Return Statement By JacksonML 就像人们习惯的函数一样,总觉得在函数体最后需要一个return语句,标志着函数的结束,就像下面这个函数 theFunc() 那样。 function theFunc() { re…

2023年11月编程语言排行榜——你的编程语言上榜了吗?

编程语言的流行度是一个热门的话题,不同的机构和平台有不同的评判标准和排名方法。本文将以 TIOBE 编程社区指数为例,介绍 2023 年 11 月的编程语言趋势榜单,分析各种编程语言的表现和原因,以及对未来的展望。 TIOBE 编程社区指数…

【傻瓜级JS-DLL-WINCC-PLC交互】6.​向PLC里面装载数据变量

思路 JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与…

【数据结构】——解决topk问题

前言:我们前面已经学习了小堆并且也实现了小堆,那么我们如果要从多个数据里选出最大的几个数据该怎么办呢,这节课我们就来解决这个问题。我们就用建小堆的方法来解决。 首先我们来看到这个方法的时间复杂度,我们先取前k个数据建立…

JAVAEE---多线程线程安全

根本原因:随机调度,抢占式执行 多个线程同时修改同一个变量 修改操作不是原子的 内存可见性 指令重排序 上面这段代码可以正常打印出hello,按照我们前面所学,第一次加锁之后,第二次加锁应该有所冲突啊。这里是因为…

java el表达式解析

使用Java EL表达式解析 在Java开发中,我们经常需要对表达式进行解析和计算。EL(Expression Language)表达式是一种用于在Java应用程序中计算和输出动态值的简单语言。它可以用于实现动态的条件判断、数学计算、字符串合并等功能。本文将教你…

【LeetCode刷题】--90.子集II

90.子集II class Solution {public List<List<Integer>> subsetsWithDup(int[] nums) {List<List<Integer>> ans new ArrayList<>();List<Integer> list new ArrayList<>();//排序后便于去重Arrays.sort(nums);dfs(0,nums,ans,lis…