Go实战学习笔记-1.1Go安装、介绍及Go Playground介绍和运行hello world

1. 前言

我按照Go官方的A tour of Go(https://go.dev/tour/)刷了一遍,之后写了一些用于Windows、OpenWrt以及摄像头相关的一些应用,但是总感觉少了一些什么,所以找了一些书籍(https://blog.csdn.net/weixin_39510813/article/details/126043362?spm=1001.2014.3001.5502)确认了Go可以做的一些事情以及目前比较感兴趣的地方,然后打算做几个系列总结一下Go开发的一些内容,比如这个Go实战学习笔记系列,将Go的安装配置、基础的数据类型使用、基础库使用、并发编程以及测试和性能方面做一些学习和实践总结,主要会参考Go Bootcamp、Go in Action、The Go Programming Language等书做相关的学习总结,之后会将AppRTC源码中Go写的信令服务源码做下分析和修改;再之后可能会总结Go开发分布式应用、DevOPS、数据结构和算法、Web开发、MCU开发(主要会基于stm32f4、arduino或树莓派,由于之前还有一个stm32f4开发板的总结没有完成,所以会使用tinyGo和C在stm32F4上进行一些简单的开发总结,总结下使用spi\i2c\uart等接口来操作常用外设,针对anduino或树莓派要看下到时候是否有合适的项目,一般也就是获取一下传感器数据或控制一下电机),最后可能会看一下Go开发编译器和解释器(这里是之前一直感兴趣但没有涉猎过的地方,到时候看自己的知识是否足够来完成,如果不行的话就再积累一下)。

本次总结内容大致如下:

在这里插入图片描述

2. 官网及相关资料收集

老生常谈,学习之前先收集资料,之后按照相关方向去学习和实践即可。

官网:https://go.dev/(包括介绍、下载、文档、包、playground、博客等)

中文网站:https://go.p2hp.com/(感觉是对go官网的搬运,版本会慢于官网)

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

GitHub:https://github.com/golang

3. 简介及安装

3.1 简介

这里不对Golang做过多介绍,我不是某项语言的狂热粉,我使用c、c++、java、php、python、shell、lua、go、js都做过一些实际项目,就目前个人开发体验来说:go在一定程度上保证了性能并降低了上手难度,个人觉得可以将其当成简化的c来学。

就官网的介绍和个人实践经验来看,目前如果你有以下方面的开发需求,可以考虑使用go来开发:1、云和网络服务应用;2、命令行界面应用;3、Web开发;4、DevOps 和站点可靠性应用。

其它的比如mcu、编译器、解释器、安全、GUI等的开发则看个人兴趣,感兴趣可以了解一下,目前感受就是坑稍微有点多,折腾起来有一点得不偿失。

3.2 安装、配置

3.2.1 安装

对于Windows、Linux桌面版以及MacOS等可以直接下载安装包像普通软件一样安装即可:https://go.dev/dl/

可以参考这里:https://go.p2hp.com/doc/install(包含了Linux中删除旧版本的方法,便于后续升级替换到新版本,Mac和Windows下像普通软件一样下载新版本包升级即可)

之后使用命令查看一下go是否安装成功:

go version
3.2.2 配置

虽然Go Module坑目前还是有一些,但自从Go 1.11之后的版本开始推行Module之后也不需要设置GOPATH、GOROOT等环境变量了,也算是新手友好的一件事,我记得刚开始学习Java安装jdk设置环境变量的时候还是比较懵,而且从目前高版本的情况看Go Module是趋势,所以这里配置就不介绍GOPATH等的配置了,直接说一下Go Module的使用以及国内GOPROXY的配置。

可以通过如下命令一步步了解(也可以参考这个中文文档:https://go.p2hp.com/go.dev/doc/tutorial/create-module):

go help
go help go.mod
go help init
go help mod tidy
go help module-get
go help mod edit

由于墙的存在,外网的部分包可能go get会失败,可以参考这里设置一下Go代理:https://blog.csdn.net/weixin_39510813/article/details/115090988

之后可以通过如下命令查看:

go env
结果:
...
set GOPROXY=https://goproxy.io,direct
...

4. Go Playground介绍及运行Hello World

4.1 Go Playground

Go Playground可以在云端运行Go程序进行简单测试:

https://go.dev/play/

https://go.p2hp.com/play/(这个服务可能挂掉了)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YWdbfC8O-1660124540869)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2f5a0136e1ae411eaf1e960c9d9ad6e0~tplv-k3u1fbpfcp-zoom-1.image)]

4.2 VS Code

创建文件后会推荐安装Go扩展,安装即可。

mkdir hello
cd .\hello\
go mod init example/hello
ls
//创建文件hello.go并输入内容,如果终端使用wsl可以直接使用vim等创建,或者在资源管理器这里相关文件夹下右键创建也可以
go run .
package main

import "fmt"

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

在这里插入图片描述

4.3 Goland

创建项目选择Go模块后创建hello文件夹即可,之后创建hello.go复制代码进去运行即可:
在这里插入图片描述

5. 最后

升级性的语言不同版本可能会有一些比较大的改动,这点一定要注意,出现问题需要注意你使用的版本的情况,结合具体版本来分析。我们以过来人的身份看,其实不管是语言还是一些工具等的发展都是为了解决现实世界的实际问题,所以对语言本身的争议是没有意义的,解决问题才是目的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昵称系统有问题

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值