Go 语言入门指南:基础语法和常用特性解析| 豆包MarsCode AI刷题

89 阅读3分钟

0.前言


原来有点编程基础,平时常用的一般是python和C,但是主要是用来做数据分析和刷题用的,今天快速了解Go语言,总体共通之处挺多,但刚开始还是不太习惯。本文简单记录下学习过程,重点总结个人易混淆点。
如有错误,还请多多指正

1.Golang开发环境安装


  1. 安装Golang:官网下载安装包后找了视频教程配置了go mod proxy(配置环境变量)
  2. 配置集成开发环境:这里我选择的是VSCode,平时一般用它写notebook和C,用的比较顺手,下载了Go插件就配置完成了

2.基础语法


记录学习心得。

2.1 先从经典的“Hello World”开始

package main

import (
    "fmt"
)

func main(){
    fmt.Println("hello world")
}
  1. 刚开始写第3行import部分()写成{},犯了个很低级的错误
  2. Go语言不同于C等语言结尾不用加上;
  3. 要养成看函数文档习惯

2.2 变量

  1. Go是强类型语言,个人觉得比较方便的一个点就是常量能够根据上下文自动确定类型
  2. 变量赋值比较特殊,写的时候有时候直接就直接用=
var a string="initial"
g:=a+"foo"

2.3 if-else

  1. 这个整体上没多少区别,只是必须用{}

2.4 循环与分支结构

  1. Go只有for循环一种,while循环可以直接通过for{}实现
  2. switch不需要加break,自动执行完一个case就停了

2.5 数组与切片

  1. 数组长度固定,一般用的比较少
//数组
var a [5]int
b:=[5]int{1,2,3,4,5}
  1. 切片支持长度更改,用的更多,操作更多
  2. 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 函数与指针

  1. Golang中变量类型后置函数里面显示括号里面放置传入参数及其类型,括号后面是返回值类型,然后才是{}和里面的函数体内容
  2. 指针用法只要是修改传入函数的参数

2.9 结构体与结构体方法

  • 结构体方法类似函数,但是支持结构体像调用字段一样直接调用

2.10 错误处理

  • 一般函数返回两个值,一个是结果一个是error,然后用简单的if-else处理错误

2.11 JSON处理

这块不太熟悉

  1. 保证结构体每个字段大写开头(公开字段),可以用JSON.marshaler去序列化转换成一个JSON字符串
  2. JSON.unmarshaler反序列化,结果为字符串,大写字母开头

PS:碎碎念


用惯了python和C,感觉go和这些语言挺像的,但细节上不同也挺多的😂,变量类型后置那个真的经常忘,刚开始写还是经常报错,还是得多练练。