第二章:编写第一个 Go 程序 2.Go 语言的基本结构 --Go 语言轻松入门

devtools/2024/11/29 5:52:10/

Go 语言是一种简洁、高效且易于学习的编程语言,它由Google开发。一个基本的Go程序通常包含以下几个部分:

  1. 包声明:在Go中,每个文件都必须属于一个包。最常用的包是main,它表示这个文件可以作为独立的应用程序运行。包声明位于文件的顶部。

  2. 导入包:通过使用import关键字来导入其他包,这样就可以使用这些包提供的功能。你可以导入标准库中的包,也可以导入第三方或自定义的包。

  3. 主函数:对于可执行程序来说,main函数是程序的入口点。每个Go应用程序都必须有一个main包,并且该包中需要有一个名为main的函数。当程序启动时,会首先执行main函数内的代码。

下面是一个简单的Go程序示例,展示了上述三个元素:

// 包声明
package main// 导入格式化I/O和操作系统接口的包
import ("fmt" // 标准库中的格式化I/O包"os"  // 提供与操作系统交互的接口
)// 主函数
func main() {// 打印一条消息到控制台fmt.Println("Hello, World!")// 读取环境变量env := os.Getenv("GOPATH")fmt.Printf("Your GOPATH is set to: %s\n", env)env = os.Getenv("GOPATH")fmt.Printf("Your PATH is set to: %s\n", env)
}

在这个例子中:

  • package main 定义了这个文件属于main包。
  • import语句导入了两个标准库包:fmt用于处理格式化的输入输出,os提供了与操作系统相关的功能。
  • func main() 是程序的起点,其中包含了程序开始执行时要运行的代码。

当你编写完Go程序后,可以通过go run命令直接运行它(例如go run main.go),或者先编译成二进制文件再运行(例如go build main.go然后执行生成的二进制文件)。

在这里插入图片描述

上面代码,我在个人电脑的终端验证:-- 打印环境变量 GOPATH
$ echo $GOPATH-- 打印环境变量 PATH
$ echo $PATH

在这里插入图片描述


http://www.ppmy.cn/devtools/137842.html

相关文章

C++:使用CRTP代替虚函数实现静态多态的效果

这个代码实现了一个 Curiously Recurring Template Pattern (CRTP),它是一种通过模板实现静态多态的方法。在这个模式中,基类使用其派生类作为模板参数,从而实现类似虚函数的行为,但没有动态多态的开销。 调用示例 下面是如何调用…

工业物联网网关在设备接入物联网中的核心作用

一、工业物联网网关的定义与功能 工业物联网网关是工业领域中的一种重要设备,它位于工业物联网系统的边缘位置,负责连接、管理和协调工业设备与云平台之间的通信。作为边缘计算的关键组件,工业物联网网关能够实现工业设备、传感器、PLC、DCS…

linux线程资源回收

在 POSIX 线程(pthread)中,线程终止后需要回收的资源主要包括以下几个方面: 1. 线程栈 每个线程都有自己的栈空间,用于存储局部变量、函数调用帧等。当线程终止时,如果没有及时回收栈空间,可能…

【大数据测试之:RabbitMQ消息列队测试-发送、接收、持久化、确认、重试、死信队列并处理消息的并发消费、负载均衡、监控等】详细教程---保姆级

RabbitMQ消息列队测试教程 一、环境准备1. 安装 RabbitMQ2. 安装 Python 依赖 二、基本消息队列中间件实现1. 消息发送模块2. 消息接收模块 三、扩展功能1. 消息持久化和队列持久化2. 消息优先级3. 死信队列(DLQ) 四、并发处理和负载均衡1. 使用 Python …

基于华为昇腾910B,实战InternLM个人小助手认知微调

本文将带领大家基于华为云 ModelArts,使用 XTuner 单卡微调一个 InternLM 个人小助手。 开源链接:(欢迎 star) https://github.com/InternLM/InternLM https://github.com/InternLM/xtuner XTuner 简介 XTuner 是一个高效、灵…

【数字图像处理+MATLAB】通过迭代全局阈值处理算法(Iterative Global Algorithm)实现图像分割

引言 图像分割是将数字图像划分为多个区域(或像素的集合)的过程,这些区域通常对应于真实世界的物体或图像中的特定部分。图像分割的目标是简化或改变图像的表示形式,使得图像更容易理解和分析。图像分割通常用于定位图像中的物体…

比特币libsecp256k1中safegcd算法形式化验证完成

1. 引言 比特币和其他链(如 Liquid)的安全性取决于 ECDSA 和 Schnorr 签名等数字签名算法的使用。Bitcoin Core 和 Liquid 都使用名为 libsecp256k1 的 C 库来提供这些数字签名算法,该库以其所运行的椭圆曲线命名。这些算法利用一种称为modu…

DataGuard 主要参数配置详解

1. 基本概念 DB_NAME:主备各节点实例使用相同的 db_name。推荐与 service_name 一致。DB_UNIQUE_NAME:主备端数据库的唯一名称,设定后不可再更改。注意,如果主备 db_unique_name 不一样,需要与 LOG_ARCHIVE_CONFIG 配…