【go入门到放弃】 第一个go程序,从hello world开始

简介: 【go入门到放弃】 第一个go程序,从hello world开始

@[toc]

前言

今天下午练了一下午车,不得不说,学车是真辛苦:
在这里插入图片描述

刚到家就开始全力以赴学习了,毕竟学习才是正道:

接下来我们一起看看你的实验环境安装了没有:

如果你已经安装好环境,请跳过前言,如果你没有安装好环境,参考以下的文章:

  1. 万事开头难-go语言的安装及环境配置
  2. 工欲善其事必先利其器-IED-goland的安装及使用

一. windows中运行go程序

1.1代码示例

在这里插入图片描述
代码示例:

package main
import "fmt"
func main() {
    fmt.Println("welcome to goland")
}

1.2 代码说明

第一行: package main

package(创建包)

和Python一样,把相同功能的代码放在一个目录,称为包

Go语言以“包”作为管理单位,每个 Go 源文件必须先声明它所属的包,所以我们会看到每个 Go 源文件的开头都是一个 package 声明,格式:package 包名

Go语言的包与文件夹是一一对应的,它具有以下几点特性:

  • 一个目录下的同级文件属于同一个包。
  • 包可以被其他包引用
  • 包名可以与其目录名不同。
  • main 包是Go语言程序的入口包,一个Go语言程序必须有且仅有一个 main 包。如果一个程序没有 main 包,那么编译时将会出错,无法生成可执行文件。

第二行代码:import "fmt"

其中 import 是导入包的关键字,name 为所导入包的名字。
这里入了 fmt 包,这行代码会告诉 Go 编译器,我们需要用到 fmt 包中的函数或者变量等,fmt 包是Go语言标准库为我们提供的,用于格式化输入输出的内容(类似于C语言中的 stdio.h 头文件),类似的还有 os 包、io 包等。

第3-5行代码:main 函数

第3-5行代码创建了一个 main 函数,它是Go语言程序的入口函数,也即程序启动后运行的第一个函数。

main 函数只能声明在 main 包中,不能声明在其他包中,并且,一个 main 包中也必须有且仅有一个 main 函数。

func main () 定义了一个函数,func是定义函数的关键字,表示是一个函数或者方法,()空括号,表示main函数不接收任何参数,在go语言中main函数是一个特殊的函数,代表整个程序项目的入口。

第4行代码:fmt.Println("welcome to goland!")

Println 是 fmt 包中的一个函数,通过fmt包的println打印函数进行打印文本,fmt是就是第二行代码中导入的包了。

二. 程序的运行

在这里插入图片描述

程序的运行

2.1 go run执行命令

2.1.1 切换到程序所在的目录

PS C:\go\src> dir



Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2022/12/13     15:12                test01


PS C:\go\src> cd .\test01\
PS C:\go\src\test01> dir


    目录: C:\go\src\test01


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2022/12/13     15:12             78 test_hello.go


PS C:\go\src\test01>

2.1.2 go run 执行命令

PS C:\go\src\test01> go run .\test_hello.go
welcome to goland

2.2 使用go bulid执行命令

go bulid 命令:编译go文件并生成一个二进制文件

PS C:\go\src\test01> go build .\test_hello.go

在这里插入图片描述
此时已经多了一个test_hello.exe的文件

然后./执行exe文件即可

PS C:\go\src\test01> .\test_hello.exe
welcome to goland
PS C:\go\src\test01> 

总结

we should study hard. we should not waste time.
我是沐风晓月,月亮初升,就是我学习的时候。

相关文章
|
3月前
|
存储 Go C语言
如何用Go开发eBPF程序
【2月更文挑战第7天】
|
1天前
|
存储 Java Linux
聊聊Go程序是如何运行的
本文作者 **sharkChili** 是一名 Java 和 Go 语言开发者,同时也是 CSDN 博客专家和 JavaGuide 维护者。文章探讨了 Go 语言的执行过程,从汇编角度出发,解释了如何从 `main.go` 文件开始,经过入口跳转、参数拷贝、启动协程、运行 `g0` 的 `main` 方法等步骤,最终执行到用户定义的 `main` 函数。文章还展示了相关汇编代码片段,并提供了运行时检查、系统初始化和调度器初始化的细节。结尾提到,有兴趣的读者可以加入作者创建的交流群进行深入讨论。
9 0
|
4天前
|
JavaScript 前端开发 Go
Go语言的入门学习
【4月更文挑战第7天】Go语言,通常称为Golang,是由Google设计并开发的一种编程语言,它于2009年公开发布。Go的设计团队主要包括Robert Griesemer、Rob Pike和Ken Thompson,这三位都是计算机科学和软件工程领域的杰出人物。
12 1
|
12天前
|
Linux Go iOS开发
【Go语言专栏】Go语言入门教程:从安装到第一个Hello World
【4月更文挑战第30天】本文介绍了Go语言的基础知识,包括其由Google开发、静态类型、编译型特点以及在服务器端编程等领域的应用。文章详细阐述了如何安装Go语言,包括在Windows、macOS和Linux上的步骤,并提供了验证安装的方法。接着,介绍了设置工作空间和配置环境变量的过程。最后,通过创建并运行一个"Hello, World!"程序,让读者初步体验Go语言的编程。文章还提供了进一步学习Go语言的资源,助力读者深入学习。
|
13天前
|
运维 Serverless Go
Serverless 应用引擎产品使用之在阿里云函数计算中,Go语言的函数计算服务Go程序没有正确打包如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
23 0
|
13天前
|
Unix Linux Go
Golang深入浅出之-信号(Signals)处理与优雅退出Go程序
【4月更文挑战第25天】Go语言中的信号处理关乎程序对外部事件的响应,尤其是优雅地终止进程。本文介绍了信号基础,如SIGINT、SIGTERM等常见信号,以及处理流程:注册处理器、等待信号、执行清理和优雅退出。强调了三个易错点及避免方法,并提供实战代码示例展示如何监听和响应信号。信号处理应简洁高效,确保程序健壮性和用户体验。
20 0
|
15天前
|
Go
Golang深入浅出之-信号(Signals)处理与优雅退出Go程序
【4月更文挑战第23天】在Go语言中,使用`os/signal`包处理信号对实现程序优雅退出和响应中断至关重要。本文介绍了如何注册信号处理器、处理常见问题和错误,以及提供代码示例。常见问题包括未捕获关键信号、信号处理不当导致程序崩溃和忽略清理逻辑。解决方案包括注册信号处理器(如`SIGINT`、`SIGTERM`)、保持信号处理器简洁和执行清理逻辑。理解并正确应用这些原则能增强Go程序的健壮性和可管理性。
22 1
|
16天前
|
Go 开发者
Golang深入浅出之-Go语言结构体(struct)入门:定义与使用
【4月更文挑战第22天】Go语言中的结构体是构建复杂数据类型的关键,允许组合多种字段。本文探讨了结构体定义、使用及常见问题。结构体定义如`type Person struct { Name string; Age int; Address Address }`。问题包括未初始化字段的默认值、比较含不可比较字段的结构体以及嵌入结构体字段重名。避免方法包括初始化结构体、自定义比较逻辑和使用明确字段选择器。结构体方法、指针接收者和匿名字段嵌入提供了灵活性。理解这些问题和解决策略能提升Go语言编程的效率和代码质量。
29 1
|
18天前
|
编译器 Go 开发者
Go语言入门|包、关键字和标识符
Go语言入门|包、关键字和标识符
33 0
|
1月前
|
程序员 Go 数据中心
掌握Go语言:探索Go语言中的代码块和作用域,增强程序灵活性与可维护性(5)
掌握Go语言:探索Go语言中的代码块和作用域,增强程序灵活性与可维护性(5)