go语言零基础入门第二天(go语言学习笔记1)

入门介绍

go语言(或 Golang)是Google开发的开源编程语言,诞生于2006年1月2日下午15点4分5秒,于2009年11月开源,2012年发布go稳定版。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。

go是非常年轻的一门语言,它的主要目标是兼具Python 等动态语言的开发速度和C/C 等编译型语言的性能与安全性

go适合做什么
  • 服务端开发
  • 分布式系统,微服务
  • 网络编程
  • 区块链开发
  • 内存KV数据库,例如boltDB、levelDB
  • 云平台
学习Go语言的前景

目前Go语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。

Go语言简单易学,天生支持并发,完美契合当下高并发的互联网生态。Go语言的岗位需求持续高涨,目前的Go程序员数量少,待遇好。

抓住趋势,要学会做一个领跑者而不是跟随者。

国内Go语言的需求潜力巨大,目前无论是国内大厂还是新兴互联网公司基本上都会有Go语言的岗位需求。

Go语言的并发是基于 goroutine 的,goroutine 类似于线程,但并非线程。可以将 goroutine 理解为一种虚拟线程。Go 语言运行时会参与调度 goroutine,并将 goroutine 合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个goroutine的消耗非常小(大约2KB的内存),你可以轻松创建数百万个goroutine。

goroutine的特点:

  • goroutine具有可增长的分段堆栈。这意味着它们只在需要时才会使用更多内存。
  • goroutine的启动时间比线程快。
  • goroutine原生支持利用channel安全地进行通信。
  • goroutine共享数据结构时无需使用互斥锁。
开发环境

官网:https://golang.org/dl/

中文社区:https://studygolang.com/dl

安装go环境

go语言零基础入门第二天(go语言学习笔记1)(1)

windows

1.双击后点击下一步安装就行

go语言零基础入门第二天(go语言学习笔记1)(2)

go语言零基础入门第二天(go语言学习笔记1)(3)

GOROOT是程序安装的目录

GOPATH是一个环境变量,用来表明你写的go项目的存放路径

然后$GOPATH创建三个文件夹

  • bin:存放编译后生成的可执行文件
  • pkg:存放编译后生成的包/库的归档文件
  • src:存放项目和库的源文件

最后验证

> go version go version go1.17.3 windows/amd64 > go env set GOROOT=D:\Application\Golang //安装时所在的目录绝对路径 set GOPATH=D:\System\Code\Golang //工作区所在的绝对目录 set GOPROXY=https://proxy.golang.org,direct //go代理地址 set GOSUMDB=sum.golang.org //用于检验module正确性的服务器地址,默认值为sum.golang.org set GONOPROXY="公司代码地址" //用于配置不走goproxy的代码地址,公司内代码仓库 set GONOSUMDB="公司代码地址" //公司内部的代码在SUMDB也是无法校验的 // GOPROXY=https://proxy.golang.org,direct 由于国内访问不到,所以我们需要换一个proxy,这里推荐使用https://goproxy.io或https://goproxy.cn。 go env -w GOPROXY=https://goproxy.cn,direct //执行命令修改 go env -w GO111MODULE=auto //开启go module支持

linux

1.解压 tar -zxvf go1.20.linux-amd64.tar.gz 2.设置环境变量 sudo vi /etc/profile export GOROOT=/usr/local/go ##Golang安装目录 export GOPATH=/home/go ##Golang项目目录 export PATH=$PATH:$GOROOT/bin source /etc/profile #按esc退出编辑模式, 按:wq保存文件 go version

编辑器vs code

下载地址:https://code.visualstudio.com/

Visual Studio Code,简称VS Code,它是目前使用人数最多的编辑器。尽管它由微软发布于2015年,与其他热门编辑器相比显得有些年轻,但它在过去几年中一直在不停的更新,它在最新的Stack Overflow调查中被选为Web开发人员中最受欢迎的文本编辑器。

VS Code不仅仅是一个基本的代码编辑器。有人说它更像是IDE而不是代码编辑器,因为它提供了许多通常只在IDE中才有的功能。主要功能包括内置调试工具,智能代码提示,集成终端以及对简易的Git操作(微软刚收购了GitHub)。作为初学者,您可以利用这些功能大大提高编程效率。

在 VS Code中找到的每个功能都完成一项出色的工作,构建了一些简单的功能集,包括语法高亮、智能补全、集成 git 和编辑器内置调试工具等,将使你开发更高效。

编写go代码是会提示安装插件,选择install all,如果没有提示,按住shift ctrl p输入go:install/Update tools

go语言零基础入门第二天(go语言学习笔记1)(4)

go语言零基础入门第二天(go语言学习笔记1)(5)

//推荐插件 Go Code Runner GitHub Theme //设置主题 Indent-rainbow //彩色标签缩进 Auto Import //自动导包 Auto Close Tag Auto Rename Tag Better Comments

go语言零基础入门第二天(go语言学习笔记1)(6)

//1.vscode 好用的快捷键 行注释: ctrl / 块注释:shift alt a 删除行:ctrl shift k 竖行模式:ctrl alt 上下键 //2.代码快捷命令 pkgm : main包 main主函数 ff : fmt.Printf("", var) for : for i := 0; i < count; i {} forr : for _, v := range v {} fmain: func main() {}

GoLang

GoLang是Jetbrains家族的Go语言IDE

下载地址:https://www.jetbrains.com/go/download

第一个go程序

package main // 声明 main 包,表明当前是一个可执行程序 import "fmt" // 导入内置 fmt func main(){ // main函数,是程序执行的入口 fmt.Println("Hello World!") // 在终端打印 Hello World! } go run helloWorld.go //运行go程序 go build //在项目目录下执行编译成二进制包 go build -o xxx.exe //默认是项目文件的名字,这样可以改二进制包的名字

跨平台编译

//Windows编译成linux执行的文件 SET CGO_ENABLED=0 //禁用CGO SET GOOS=linux //目标平台是linux SET GOARCH=amd64 //目标处理器架构是amd64 go build //Windows编译成mac可执行文件 SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build //mac编译linux可执行的文件 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build //mac编译成Windows可执行的文件 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build //linux编译成mac可执行文件 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build //linux编译Windows可执行文件 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

go常用命令

//常用命令go help可以查看 build: 编译 run: 运行go程序 get: 下载并安装依赖包 install: 编译并安装包依赖 clean: 移除对象文件 doc: 显示包或者符号的文档 env: 显示环境变量信息 bug: 启动错误报告 generate: 从processing source生成go文件 list: 列出包 test: 测试运行 version: 显示go的版本 tool: 运行go提供的工具 vet: 运行go tool vet fix: 运行go tool fix fmt: 格式化

代码管理

go是使用包和模块来组织代码,包就是指文件夹,模块就是指.go结尾的文件。

go get xxxx //下载包 参数介绍: -d 只下载不安装 -f 只有在你包含了 -u 参数的时候才有效,不让 -u 去验证 import 中的每一个都已经获取了,这对于本地 fork 的包特别有用 -fix 在获取源码之后先运行 fix,然后再去做其他的事情 -t 同时也下载需要为运行测试所需要的包 -u 强制使用网络去更新包和它的依赖包 -v 显示执行的命令 //go mod命令 init //初始化,创建go.mod文件 go mod init project //初始化项目 download //下载模块到本地缓存 tidy //增加需要的依赖,删除不需要的依赖

1.新建项目文件夹:project mkdir project 2.初始化项目: go mod init project //会生成 go.mod文件 cat go.mod module project go 1.19 3.创建包 mkdir helloWorld && cd helloWorld vim helloWorld.go package helloworld func Hello() string { return "hello world!" } 4.创建文件 vim ../main.go package main import ( "fmt" helloworld "project/helloWorld" ) func main() { s := helloworld.Hello() fmt.Printf("s: %v\n", s) } 5.相互调用 go run main.go //打印:s: hello world!

go语言零基础入门第二天(go语言学习笔记1)(7)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页