Go 语言 入门 && 基于 GoLand 2023.1 创建第一个Go程序

简介: Go 语言 入门 && 基于 GoLand 2023.1 创建第一个Go程序

Go 语言 入门

go 语言是什么?

Go语言(又称为Golang)是一种开源的编程语言,由Google开发并于2009年首次亮相。它是一种静态类型、编译型的语言,拥有自动垃圾回收机制和强大的并发编程支持。

Go语言被设计成简洁、易于学习和使用,同时具备高效、可靠和可扩展的特性。它的语法风格类似于C语言,但是去掉了许多C语言中的复杂特性,如指针和内存管理

Go语言可以用于编写各种类型的应用程序,包括服务器端应用程序、网络应用程序、云平台应用程序、操作系统和系统工具等。它也被广泛用于大型互联网公司和其他组织的内部开发中,例如Google、Uber、Dropbox和Docker等。

go 入门 需要 学习 什么?

  1. Go 语言基础:包括语言基础、变量、数据类型、控制语句、函数、指针、数组、切片、映射、结构体等等。
  2. Go 语言并发:Go 语言天生支持并发,学习并发编程需要掌握 goroutine 和 channel 的使用,以及常用的并发模型和并发编程的技巧。
  3. Go 语言标准库:Go 语言的标准库非常丰富,学习如何使用标准库可以让你更快速地编写高效的程序。
  4. Go 语言开发工具和环境:学习如何安装和配置 Go 语言的开发环境,以及如何使用 Go 的命令行工具进行编译、运行和调试程序。
  5. Go 语言网络编程:Go 语言天生支持网络编程,学习如何使用 Go 编写网络程序,包括 HTTP、TCP、UDP 等协议的编程。
  6. Go 语言测试和调试:Go 语言内置了测试框架,学习如何编写测试用例以及如何使用调试工具进行调试,可以帮助你更好地开发和维护 Go 语言程序。

Go 语言有 那些优势?

1.高效性:Go 语言的编译器和运行时系统被优化得非常高效,能够在性能和资源利用效率上做到卓越。此外,Go 语言的并发模型也被设计为非常高效,能够支持大规模并发。

  1. 简洁易学:Go 语言的语法简洁清晰,语言规范明确,学习曲线较为平滑。相比其他语言,Go 语言的语法更加简洁易读,没有冗余的语法和复杂的特性。
  2. 并发编程:Go 语言天生支持并发编程,提供了 goroutine 和 channel 等原语,使得编写高效、简洁的并发程序变得容易。并发编程也是 Go 语言的一大亮点和优势,被广泛应用于网络编程和高并发场景。
  3. 跨平台:Go 语言的编译器可以生成不同平台下的本地代码,支持跨平台开发,可以在不同操作系统和硬件上编写和运行相同的程序。
  4. 开发效率:Go 语言提供了一套完善的标准库和工具链,可以帮助开发者提高开发效率。同时,Go 语言的静态类型和自动垃圾回收等特性,可以减少代码出错的可能性,提高代码的稳定性和可维护性。
  5. 社区活跃:Go 语言的社区活跃度高,拥有庞大的开发者社区和众多的开源项目,可以提供丰富的资源和技术支持,方便学习和应用。

Go 语言 与 Java 语言 对比

  1. 语法风格:Go 语言和 Java 语言在语法风格上存在差异,Go 语言注重简洁和可读性,避免过多的语法和关键字;而 Java 语言的语法比较复杂,需要大量的关键字和语法结构来实现各种功能。
  2. 并发模型:Go 语言和 Java 语言在并发模型上存在差异。Go 语言使用 goroutine 和 channel 实现高效的并发编程;而 Java 语言则使用线程和锁等机制,需要开发者自行管理线程和锁,容易出现死锁等问题。
  3. 内存管理:Go 语言和 Java 语言在内存管理上有不同。Go 语言采用了自动垃圾回收机制,可以自动管理内存,减少内存泄漏等问题;而 Java 语言也支持垃圾回收机制,但由于 JVM 的实现方式和算法不同,可能存在一些性能和效率上的差异。
  4. 性能和效率:Go 语言和 Java 语言在性能和效率上有一定差异。由于 Go 语言的设计目标是高效和简洁,因此在性能和效率上具有优势,尤其是在大规模并发和网络编程方面。而 Java 语言则更注重开发效率和稳定性,因此在一些场景下性能和效率不如 Go 语言。
  5. 库和框架:Java 语言拥有庞大的生态系统和丰富的第三方库和框架,可以快速开发各种应用;而 Go 语言的生态系统相对较小,但也有一些优秀的第三方库和框架可供选择。

总的来说,Go 语言和 Java 语言在某些方面有相似之处,也有不同之处。选择使用哪种语言,需要根据具体的应用场景和需求进行考虑。

Go 语言 与Python 语言 对比

  1. 语法风格:Go 语言和 Python 语言在语法风格上存在差异,Go 语言注重简洁和可读性,避免过多的语法和关键字;而 Python 语言则更加注重代码的可读性和简洁性,采用缩进的方式表示代码块,避免使用大量的括号和分号。
  2. 并发模型:Go 语言和 Python 语言在并发模型上存在差异。Go 语言使用 goroutine 和 channel 实现高效的并发编程;而 Python 语言则使用多线程和协程等机制来实现并发编程。
  3. 内存管理:Go 语言和 Python 语言在内存管理上有不同。Go 语言采用了自动垃圾回收机制,可以自动管理内存,减少内存泄漏等问题;而 Python 语言也支持垃圾回收机制,但由于其实现方式和算法不同,可能存在一些性能和效率上的差异。
  4. 性能和效率:Go 语言和 Python 语言在性能和效率上有一定差异。由于 Go 语言的设计目标是高效和简洁,因此在性能和效率上具有优势,尤其是在大规模并发和网络编程方面。而 Python 语言则更注重开发效率和灵活性,因此在一些场景下性能和效率不如 Go 语言。
  5. 库和框架:Python 语言拥有庞大的生态系统和丰富的第三方库和框架,可以快速开发各种应用;而 Go 语言的生态系统相对较小,但也有一些优秀的第三方库和框架可供选择。

总的来说,Go 语言和 Python 语言在某些方面有相似之处,也有不同之处。选择使用哪种语言,需要根据具体的应用场景和需求进行考虑。

Go 语言 基于 GoLand 创建第一个程序

1. 打开 GoLand

2.选择 new

3. 选择SDK版本

4. 输入项目名称,点击 cteate

项目创建完成

下一步,创建一个 Go file

选择 app 的文件,是带main 函数的文件

可以直接输入 print 函数

package main
import "time"
func main() {
  println("libin9iOak !")
  println(time.DateTime)
  println(time.Now().Format("2006-01-02 15:04:05"))
  println("Hello Go Language !")
  println("I Can Do This !")
}

右键运行即可;

运行结果:

println(time.Now().Format("2006-01-02 15:04:05")) 语句解释:

在 Go 中,日期格式化字符串的规则是使用一些特殊的占位符来表示不同的日期和时间组件。其中,2006 年是特殊的一年,它是 Go 语言的初始版本发布的年份。因此,这个年份被用作默认的占位符,用来表示年份。

在日期格式化字符串中,使用 2006 年来代表年份,1 月来代表月份,2 日来代表日期,15 小时来代表小时,04 分钟来代表分钟,05 秒来代表秒数。这个规则可以帮助程序员更容易地记住日期格式化字符串的占位符。

所以,当你使用 time.Now().Format(“2006-01-02 15:04:05”) 这个语句时,它的意思是将当前时间按照指定的格式进行格式化输出,其中 2006-01-02 15:04:05 就是一个日期格式化字符串。使用 2006 年来表示年份,01 来表示月份,02 来表示日期,15 来表示小时,04 来表示分钟,05 来表示秒数。

因此,在 Go 中,你必须写 2006 年来代表年份,否则 Go 编译器会将它当作普通的年份来处理,导致日期格式化出现错误。

今天的分享就到这里,我们下期再见~

结语

如果这篇文章对您有所帮助,或者有所启发的话,求一键三连:点赞、评论、收藏➕关注,您的支持是我坚持写作最大的动力。

文章知识点与官方知识档案匹配,可进一步学习相关知识

Java技能树首页概览131029 人正在系统学习中

关注博主即可阅读全文

目录
相关文章
|
5天前
|
存储 JSON 监控
Viper,一个Go语言配置管理神器!
Viper 是一个功能强大的 Go 语言配置管理库,支持从多种来源读取配置,包括文件、环境变量、远程配置中心等。本文详细介绍了 Viper 的核心特性和使用方法,包括从本地 YAML 文件和 Consul 远程配置中心读取配置的示例。Viper 的多来源配置、动态配置和轻松集成特性使其成为管理复杂应用配置的理想选择。
23 2
|
3天前
|
Go 索引
go语言中的循环语句
【11月更文挑战第4天】
11 2
|
3天前
|
Go C++
go语言中的条件语句
【11月更文挑战第4天】
14 2
|
6天前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
3天前
|
Go
go语言中的 跳转语句
【11月更文挑战第4天】
10 4
|
3天前
|
JSON 安全 Go
Go语言中使用JWT鉴权、Token刷新完整示例,拿去直接用!
本文介绍了如何在 Go 语言中使用 Gin 框架实现 JWT 用户认证和安全保护。JWT(JSON Web Token)是一种轻量、高效的认证与授权解决方案,特别适合微服务架构。文章详细讲解了 JWT 的基本概念、结构以及如何在 Gin 中生成、解析和刷新 JWT。通过示例代码,展示了如何在实际项目中应用 JWT,确保用户身份验证和数据安全。完整代码可在 GitHub 仓库中查看。
14 1
|
5天前
|
Go 调度 开发者
探索Go语言中的并发模式:goroutine与channel
在本文中,我们将深入探讨Go语言中的核心并发特性——goroutine和channel。不同于传统的并发模型,Go语言的并发机制以其简洁性和高效性著称。本文将通过实际代码示例,展示如何利用goroutine实现轻量级的并发执行,以及如何通过channel安全地在goroutine之间传递数据。摘要部分将概述这些概念,并提示读者本文将提供哪些具体的技术洞见。
|
IDE Go 开发工具
Go开发IDE全览:GoLand vs VSCode全面解析
Go开发IDE全览:GoLand vs VSCode全面解析
507 0
|
IDE Go 开发工具
【Go·编辑器IDE】GoLand集成开发环境安装及使用教程
【Go·编辑器IDE】GoLand集成开发环境安装及使用教程
【Go·编辑器IDE】GoLand集成开发环境安装及使用教程
|
2月前
|
IDE Go 开发工具
8-13|Cannot run program "C:\Users\Administrator\AppData\Local\Temp\GoLand\___8go_build__go.exe" (in
8-13|Cannot run program "C:\Users\Administrator\AppData\Local\Temp\GoLand\___8go_build__go.exe" (in