【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.
我是沐风晓月,月亮初升,就是我学习的时候。

相关文章
|
28天前
|
Go 数据处理 开发者
Go 语言的反射机制允许程序在运行时动态检查和操作类型信息,提供极大的灵活性和扩展性
Go 语言的反射机制允许程序在运行时动态检查和操作类型信息,提供极大的灵活性和扩展性。本文探讨了反射的基本原理、主要操作、应用场景及注意事项,并通过实例展示了反射的实际应用,帮助开发者更好地理解和使用这一强大特性。
31 2
|
1月前
|
存储 设计模式 安全
Go语言中的并发编程:从入门到精通###
本文深入探讨了Go语言中并发编程的核心概念与实践技巧,旨在帮助读者从理论到实战全面掌握Go的并发机制。不同于传统的技术文章摘要,本部分将通过一系列生动的案例和代码示例,直观展示Go语言如何优雅地处理并发任务,提升程序性能与响应速度。无论你是Go语言初学者还是有一定经验的开发者,都能在本文中找到实用的知识与灵感。 ###
|
1月前
|
Serverless Go
Go语言中的并发编程:从入门到精通
本文将深入探讨Go语言中并发编程的核心概念和实践,包括goroutine、channel以及sync包等。通过实例演示如何利用这些工具实现高效的并发处理,同时避免常见的陷阱和错误。
|
2月前
|
安全 Go 开发者
破译Go语言中的并发模式:从入门到精通
在这篇技术性文章中,我们将跳过常规的摘要模式,直接带你进入Go语言的并发世界。你将不会看到枯燥的介绍,而是一段代码的旅程,从Go的并发基础构建块(goroutine和channel)开始,到高级模式的实践应用,我们共同探索如何高效地使用Go来处理并发任务。准备好,让Go带你飞。
|
2月前
|
存储 安全 Go
Go语言切片:从入门到精通的深度探索###
本文深入浅出地剖析了Go语言中切片(Slice)这一核心概念,从其定义、内部结构、基本操作到高级特性与最佳实践,为读者提供了一个全面而深入的理解。通过对比数组,揭示切片的灵活性与高效性,并探讨其在并发编程中的应用优势。本文旨在帮助开发者更好地掌握切片,提升Go语言编程技能。 ###
|
3月前
|
Kubernetes Go 持续交付
一个基于Go程序的持续集成/持续部署(CI/CD)
本教程通过一个简单的Go程序示例,展示了如何使用GitHub Actions实现从代码提交到Kubernetes部署的CI/CD流程。首先创建并版本控制Go项目,接着编写Dockerfile构建镜像,再配置CI/CD流程自动化构建、推送Docker镜像及部署应用。此流程基于GitHub仓库,适用于快速迭代开发。
75 3
|
3月前
|
Kubernetes 持续交付 Go
创建一个基于Go程序的持续集成/持续部署(CI/CD)流水线
创建一个基于Go程序的持续集成/持续部署(CI/CD)流水线
|
3月前
|
IDE Go 数据处理
Go to Learn Go之第一个Go程序
Go to Learn Go之第一个Go程序
28 0
|
4月前
|
存储 缓存 安全
|
4月前
|
编译器 Go 开发者