Go语言学习Day1:什么是Go?

这篇具有很好参考价值的文章主要介绍了Go语言学习Day1:什么是Go?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪)
创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)

1、走近Go

①Go语言的Logo

Go语言,通常被称为Golang,是一种高效、静态类型的编程语言,旨在简化多核心、网络编程及大型软件项目的开发。Go语言的设计注重简洁性、高效编译和执行速度以及高效的并发处理能力。

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

②Go语言的创始人

Go语言由Robert Griesemer、Rob Pike和Ken Thompson在2007年开始设计,随后在2009年正式对外公开。这三位都是在谷歌工作的知名计算机科学家:

  • Robert Griesemer:曾参与Java HotSpot虚拟机的开发。
  • Rob Pike:Unix团队的成员,同时也是UTF-8字符编码的共同设计者。
  • Ken Thompson:Unix操作系统的共同发明人,同时也是著名的编程语言B和C的开发者。
③Go语言的发展史
  • 2007年:Go语言的构思和初步设计开始。
  • 2009年11月:Go语言被公开发布,标志着Go语言开源社区的开始。
  • 2012年:Go 1.0正式发布,这是Go语言的第一个稳定版本,为Go语言的发展奠定了基础。
  • 随后几年:Go语言持续发展,版本迭代速度稳定。社区和第三方库的生态也逐渐丰富起来。
  • 2015年:Go语言开始被广泛应用于商业和开源项目中,特别是在微服务、云计算和大数据处理领域。
  • 至今:Go语言继续增长其在开发者中的受欢迎程度,特别是在容器化(如Docker)、云服务(如Kubernetes)等现代计算领域。

Go语言的设计和发展史体现了它的目标:提供一种能够充分利用现代硬件架构的编程语言,同时让编程更加高效和愉快。Go语言简洁的语法、出色的并发支持和高效的性能,使其成为了当前软件开发领域的一个重要选择。

2、Go语言的优势

①Go语言的特性与优势

Go语言具有许多引人注目的特性和优势,使其成为开发者和公司的首选语言之一:

  1. 简洁、清晰的语法:Go语言的设计理念是简单和高效,这让新手容易上手,同时让经验丰富的开发者能够快速理解和修改代码。
  2. 并发编程支持:Go语言的并发模型是它的一大亮点。通过goroutines(轻量级线程)和channels(用于线程间的通信),Go让并发编程变得简单而直观。
  3. 静态类型语言:虽然编写起来几乎和动态类型语言一样自然,但Go是静态类型的,这意味着更早的错误发现和更好的性能。
  4. 强大的标准库:Go的标准库包含了大量用于处理网络、并发、数据解析、文本处理等的库,这些都是“开箱即用”的。
    Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言
②有哪些公司在用Go?

Go语言在许多知名公司中得到应用,包括但不限于:

  • Google:作为Go语言的诞生地,Google在其许多项目中使用Go,包括Docker和Kubernetes。
  • Uber:Uber使用Go语言来处理其高负载的地理位置服务和其他微服务。
  • Twitch:Twitch使用Go语言来处理其实时聊天系统中的高并发。
  • Dropbox:Dropbox使用Go来处理后端服务,特别是在处理大量的文件同步任务时。
  • Netflix:Netflix使用Go语言在其服务器端应用程序中实现高性能和高并发。
    Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

国内的,比较有名的例如字节跳动等大厂也有在使用Go。

③使用Go语言开发的项目

一些著名的用Go语言开发的项目包括:

  • Docker:一个开源项目,用于自动化应用程序的部署在轻量级的容器中,它使得应用程序的部署更加简单和高效。
  • Kubernetes:一个由Google发起的开源平台,用于自动部署、扩展和管理容器化应用程序,是容器化应用管理的事实标准。
  • Prometheus:一个开源的系统监控和警报工具包,它使用Go语言开发,专为可靠性和高效性设计。
  • Golang Gin:一个高性能的Web框架,提供了一组丰富的功能,用于快速开发Web应用程序或微服务。
    Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

Go语言凭借其出色的性能、并发处理能力和简洁的语法,成为了现代软件开发中的一个重要工具,特别是在云计算、微服务架构和大数据处理等领域。

④Go语言常用库

Go语言的标准库与Python等编程语言类似,以包的方式提供支持,下表列出了Go语言标准库中常见的包及其功能。

Go语言标准库包名 功 能
bufio 带缓冲的 I/O 操作
bytes 实现字节操作
container 封装堆、列表和环形列表等容器
crypto 加密算法
database 数据库驱动和接口
debug 各种调试文件格式访问及调试功能
encoding 常见算法如 JSON、XML、Base64 等
flag 命令行解析
fmt 格式化操作
go Go语言的词法、语法树、类型等。可通过这个包进行代码信息提取和修改
html HTML 转义及模板系统
image 常见图形格式的访问及生成
io 实现 I/O 原始访问接口及访问封装
math 数学库
net 网络库,支持 Socket、HTTP、邮件、RPC、SMTP 等
os 操作系统平台不依赖平台操作封装
path 兼容各操作系统的路径操作实用函数
plugin Go 1.7 加入的插件系统。支持将代码编译为插件,按需加载(一个完整的go环境是很大也,只放需要的部分)
reflect 语言反射支持。可以动态获得代码中的类型信息,获取和修改变量的值
regexp 正则表达式封装
runtime 运行时接口
sort 排序接口
strings 字符串转换、解析及实用函数
time 时间接口
text 文本模板及 Token 词法器

3、Go环境搭建

①官网下载go

https://go.dev/dl/

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

②下载好后

双击安装包,一直下一步进行安装。

之后在控制台窗口输入“go version”可查看Go版本,检测是否安装成功。

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

③配置环境变量

Go需要一个安装目录,还需要一个工作目录。即GOROOT、和GOPATH。其中GOROOT即为GO的安装目录。

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

GOPATH即为存储Go语言项目的路径,可以自己进行设值,我放在了GoWorks自己建的,里面需要包含src、pkg、bin三个目录。

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

如果你下载的开发工具没有这些识别项,需要检查环境变量是否配置了Goworks。

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

如果是安装包安装的,系统环境变量自动配置的,如果压缩包安装,需要在PATH配置Go的命令。

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

最后,打开控制台,输入命令go env查看是否配置成功。

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

此时go环境搭建完成。

之后进官网下载Go语言IDE

①GoLand官网

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

②安装

点击Download下载之后,一路下一步安装,基本上没太大需要改动的地方。

一般需要改动的地方在于安装目录。

安装好后,打开界面如下:

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

4、测试(Hello World!)

写一个Hello World测试一下是否配置成功:

package main

//用于引入 Go 语言的 fmt 包。
//fmt 包含有格式化 I/O(输入/输出)的函数,类似于 C 语言中的 printf 和 scanf,或者是 Python 中的 print 函数。
//例如:
//fmt.Println() 用于打印输出,同时在末尾加上换行符。
//fmt.Printf() 允许格式化字符串输出。
//fmt.Scanln() 等函数用于从标准输入读取。
import "fmt"

func main() {
	fmt.Println("Hello World!")
}

Go语言学习Day1:什么是Go?,# Go,golang,学习,开发语言

补充:常用的几种Print方式

1.Print

//输出到控制台(不接受任何格式化,它等价于对每一个操作数都应用 %v)
fmt.Print(str)

2.Println

//输出到控制台并换行
fmt.Println(tmp)

3.Printf

var a int = 1
var b int = 2
var c int = 3
只可以打印出格式化的字符串。只可以直接输出字符串类型的变量(不可以输出整形变量和整形 等)
fmt.Printf("%d",a)
fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)

在 Printf中,有一些常用的格式化占位符,大家根据自己日常编程经验,记住常用的几个就行,其余的用到的时候再行查找:

  • %v 以默认的方式打印变量的值
  • %T 打印变量的类型
  • %s 正常输出字符串
  • %t 打印true或false
  • %p 带0x的指针
  • %d 整型
  • %#p 不带0x的指针
  • %o 不带零的八进制
  • %#o 带零的八进制
  • %x 小写的十六进制
  • %X 大写的十六进制
  • %#x 带0x的十六进制
  • %U 打印Unicode字符
  • %#U 打印带字符的Unicode
  • %b 打印整型的二进制
  • %q 字符串带双引号,字符串中的引号带转义符
  • %f (=%.6f) 6位小数点
  • %e (=%.6e) 6位小数点(科学计数法)
  • %g 用最少的数字来表示
  • %.3g 最多3位数字来表示
  • %.3f 最多3位小数来表示

很感谢你能看到这里,如有相关疑问,还请下方评论留言。
Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
希望本篇内容能对大家有所帮助,如果大家喜欢的话,请动动手点个赞和关注吧,非常感谢你们的支持!文章来源地址https://www.toymoban.com/news/detail-842325.html

到了这里,关于Go语言学习Day1:什么是Go?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • day4 驱动开发 c语言学习

    不利用系统提供的register_chrdev,自己实现字符设备的注册 底层代码 led.c 应用层代码 app.c 头文件 head.h

    2024年02月14日
    浏览(39)
  • Go学习圣经:Go语言实现高并发CRUD业务开发

    现在 拿到offer超级难 ,甚至连面试电话,一个都搞不到。 尼恩的技术社群中(50+),很多小伙伴凭借 “左手云原生+右手大数据”的绝活,拿到了offer,并且是非常优质的offer, 据说年终奖都足足18个月 。 第二个案例就是:前段时间,一个2年小伙伴希望涨薪到18K, 尼恩把

    2024年02月11日
    浏览(52)
  • Go语言 -- Web开发基础学习 net/http包

    Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go语言最擅长的领域就是Web开发,此贴是本人入门完go语法基础后学习Web开发的学习笔记。 新建go文件hello_world.go 写入: 在命令行运行: go run ./hello_world.go 可以发现控制台输出以下信息 通过上述代码

    2024年02月06日
    浏览(50)
  • Java转Go:java开发者转学go语言,请给我一些建议和学习推荐

    在做开发时遇到最无理的需求就是部门没了😂 遇到最无理的需求就是部门没了😂,差点人也在这个公司没了,但好在是跟着大部队换了一个部门,就是要转go,也可能要用js和solidity开发 一开始知道部门没了,第一时间一定是会担心,甚至后面知道有的同事要被毕业,有的同

    2024年02月13日
    浏览(50)
  • 一般开发Unity 使用什么语言,需要学习什么知识

    一般来说,开发Unity使用的是C#语言。要学习Unity开发,你需要学习的知识包括: C#语言的基础知识 Unity的基本使用方法 常用的游戏编程模式,如游戏循环、场景切换、碰撞检测等 了解游戏对象、资源、动画、物理等概念 了解常用的游戏开发插件和工具,如脚本编辑器、版本

    2024年02月13日
    浏览(54)
  • 【go语言学习笔记】05 Go 语言实战

    在做项目开发的时候,要善于借助已经有的轮子,让自己的开发更有效率,也更容易实现。 1. RESTful API 定义 RESTful API 是一套规范,它可以规范如何对服务器上的资源进行操作。和 RESTful API 和密不可分的是 HTTP Method。 1.1 HTTP Method HTTP Method最常见的就是POST和GET,其实最早在

    2024年02月13日
    浏览(44)
  • 6.Go语言学习笔记-结合chatGPT辅助学习Go语言底层原理

    1、Go版本 2、汇编基础 推荐阅读:GO汇编语言简介 推荐阅读:A Quick Guide to Go\\\'s Assembler - The Go Programming Language 精简指令集 数据传输: MOV/LEA 跳转指令: CMP/TEST/JMP/JCC 栈指令: PUSH/POP 函数调用指令: CALL/RET 算术指令: ADD/SUB/MUL/DIV 逻辑指令: AND/OR/XOR/NOT 移位指令: SHL/SHR JCC有条件跳转: JE

    2024年02月04日
    浏览(40)
  • 【go语言学习笔记】04 Go 语言工程管理

    1. 单元测试 单元测试是保证代码质量的好方法,但单元测试也不是万能的,使用它可以降低 Bug 率,但也不要完全依赖。除了单元测试外,还可以辅以 Code Review、人工测试等手段更好地保证代码质量。 1.1 定义 顾名思义,单元测试强调的是对单元进行测试。在开发中,一个单

    2024年02月13日
    浏览(40)
  • go语言学习——9

    前言:统计1~90000000数字中,哪些是素数? 使用循环,很慢 使用并发或者并行的方式,将任务分配给多个goroutine去完成,就会使用到goroutine 进程和线程 进程 是程序在操作系统中的一次执行过程,是 系统进行资源分配和调度 的基本单位 线程 是进程的一个执行实例,是 程序

    2024年02月08日
    浏览(43)
  • Go语言学习笔记

    注:安装教程 注:上一篇笔记 注:下一篇笔记 2.6、流程控制 2.6.1、条件语句 2.6.2、选择语句 2.6.3、循环语句 2.6.4、跳转语句 goto语句跳转到本函数内的某个标签 2.7、函数 2.7.1、函数定义 函数构成代码执行的逻辑结构。函数的基本组成为:func、函数名、参数列表、返回值

    2024年02月06日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包