0.前言
原来有点编程基础,平时常用的一般是python和C,但是主要是用来做数据分析和刷题用的,今天快速了解Go语言,总体共通之处挺多,但刚开始还是不太习惯。本文简单记录下学习过程,重点总结个人易混淆点。
如有错误,还请多多指正
1.Golang开发环境安装
- 安装Golang:官网下载安装包后找了视频教程配置了go mod proxy(配置环境变量)
- 配置集成开发环境:这里我选择的是VSCode,平时一般用它写notebook和C,用的比较顺手,下载了Go插件就配置完成了
2.基础语法
记录学习心得。
2.1 先从经典的“Hello World”开始
package main
import (
"fmt"
)
func main(){
fmt.Println("hello world")
}
- 刚开始写第3行
import部分()写成{},犯了个很低级的错误 - Go语言不同于C等语言结尾不用加上
; - 要养成看函数文档习惯
2.2 变量
- Go是强类型语言,个人觉得比较方便的一个点就是常量能够根据上下文自动确定类型
- 变量赋值比较特殊,写的时候有时候直接就直接用
=了
var a string="initial"
g:=a+"foo"
2.3 if-else
- 这个整体上没多少区别,只是必须用
{}
2.4 循环与分支结构
- Go只有for循环一种,while循环可以直接通过
for{}实现 switch不需要加break,自动执行完一个case就停了
2.5 数组与切片
- 数组长度固定,一般用的比较少
//数组
var a [5]int
b:=[5]int{1,2,3,4,5}
- 切片支持长度更改,用的更多,操作更多
- append操作和python有点区别,需要赋值
s:=make([]string,3)
//注意:append操作要把结果赋值给原数组
s=s.append(s,"a")
2.6 map
- map是无序的,随机输出
- 类似python里面的字典,键值对形式(?)
m:=make(map[string]int)
2.7 range
- range返回两个值:索引,值
2.8 函数与指针
- Golang中变量类型后置函数里面显示括号里面放置传入参数及其类型,括号后面是返回值类型,然后才是
{}和里面的函数体内容 - 指针用法只要是修改传入函数的参数
2.9 结构体与结构体方法
- 结构体方法类似函数,但是支持结构体像调用字段一样直接调用
2.10 错误处理
- 一般函数返回两个值,一个是结果一个是error,然后用简单的if-else处理错误
2.11 JSON处理
这块不太熟悉
- 保证结构体每个字段大写开头(公开字段),可以用
JSON.marshaler去序列化转换成一个JSON字符串 JSON.unmarshaler反序列化,结果为字符串,大写字母开头
PS:碎碎念
用惯了python和C,感觉go和这些语言挺像的,但细节上不同也挺多的😂,变量类型后置那个真的经常忘,刚开始写还是经常报错,还是得多练练。