【Golang】Go语言教程

Go语言教程

文章目录

一、Go语言教程

  • Go全称Golang

  • Go是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

  • Go是从2007年未由Robert Griesemer,Rob Pike,Ken Thompson(三个人的名字)主持开发,后来还加入了lan Lance Taylor,Russ Cox等人,并最终与2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经完成开放的,并且拥有一个活跃的社区。

二、Go语言特色

  • 简洁、快速、安全

  • 并行、有趣、开源

  • 内存管理、数组安全、编译迅速

三、Go语言用途

  • Go语言被涉及成一门一个用于搭载Web服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
  • 对于高性能分布式系统领域而言,Go语言无疑比大多数其他语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

四、第一个Go程序

  • 接下来我们来编写一个Go程序hello.go(Go语言源文件的扩展是.go),代码如下:
go 复制代码
package main   // 程序的入口

import "fmt"   // 导入fmt包,它提供了I/O格式化功能,包括打印到控制台的格式化功能

func main() {   // 这定义了main函数,它是程序的入口。Go运行时将从该函数开始执行程序
	fmt.Println("Hello,World!")  // 打印Hello,World!
}

六、运行代码的两种方式

  • 要执行Go语言代码可以使用go run命令执行进行运行
cmd 复制代码
D:\VS\Go\src\gocode\project01\main>go run test.go
Hello,World!
  • 此外我们还可以使用go build命令来生成二进制文件进行运行
cmd 复制代码
D:\VS\Go\src\gocode\project01\main>go build test.go


D:\VS\Go\src\gocode\project01\main>test.exe  # 使用build后的二进制文件进行运行,
Hello,World!


# 也可以在build的时候进行更改程序的名称
# 会根据路劲下面的.go文件进行自动识别
D:\VS\Go\src\gocode\project01\main>go build -o new.exe  
D:\VS\Go\src\gocode\project01\main>new.exe
Hello,World!

七、go run和go buil的区别

7.1、go run

  • 用途
    • go run用于编译并运行指定的Go源代码文件或包
  • 编译和运行
    • 该命令会立即编辑源代码,然后运行生成的可执行文件
    • 编译后的可执行文件不会保存到磁盘上,只会在内存中运行
  • 依赖管理
    • go run会自动处理依赖关系,下载和安装所需的依赖包
  • 快速开发
    • 非常适合快速开发和测试,因为它省去了是手动编译的步骤

7.2、Go build

  • 用途

    • go build用于编译指定的Go源代码文件或包,并生成可执行文件
  • 编译

    • 该命令会编译源代码,并将生成的可执行文件保存到当前目录或指定的目录中
    • 默认情况下,生成的可执行文件名为包名(对于main包,通常是mainmain.<平台>
  • 依赖管理

    • go build也会自动处理依赖关系,下载和安装所需的依赖包
  • 发布

    • 生成的可执行文件是独立的,可以分发到其他没有安装Go的环境中运行
  • 交叉编译

    • go build支持交叉编译,通过环境变量GOOSGOARCH可以为不同的操作系统和架构生成可执行文件
相关推荐
平头哥AI10 分钟前
Day 22 _ 包装错误别丢链_%w、errors.Is 与 errors.As
android·服务器·学习·golang·go
嵌入式学习菌21 分钟前
Modbus‑RTU 数据类型分析
开发语言·单片机·bug
码事漫谈30 分钟前
DeepSeek 这波操作很凶
后端
QYRdata32 分钟前
权威数据披露:2026至2032年边缘云服务CAGR达15.6%,赛道发展驶入快车道
网络·人工智能·云计算·服务发现·边缘计算
matlab代码1 小时前
基于matlab数字图像处理的指纹识别系统【源码68期】
开发语言·matlab
Bs_MoneyMagnet1 小时前
基于springboot+vue的医疗健康便民服务平台的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring
matlab代码2 小时前
基于matlab的水果识别系统(苹果香蕉菠萝梨桃子)【源码65期】
开发语言·matlab
wuyk5552 小时前
从零吃透 MQTT 通信|第 8 章 FreeRTOS 多任务架构下 MQTT 工程架构,任务拆分、队列解耦、临界区保护
c语言·开发语言·stm32·学习·架构
weixin199701080162 小时前
[特殊字符]《跨境二手ERP对接Back Market:标准化API + 7~10工作日技术合规审核实录》(附Python源码)
开发语言·python·pandas
尘客-追梦2 小时前
Day 01:插件化之前,先看清 ABI 这堵墙
开发语言·c++·qt