Go基础语法总结|青训营

【知识点】

一、特点

  1. 高性能、高并发:Go天生支持并发编程,通过goroutine和channel实现。goroutine是轻量级线程,可以在单个程序中同时执行多个任务。channel是用于goroutine之间通信的管道。
  2. 语法简单、学习曲线平缓
  3. 丰富的标准库
  4. 完整的工具链
  5. 静态链接:Go是一种静态类型语言,需要在声明变量时指定类型。这可以帮助开发者在编译时捕获一些错误。
  6. 快速编译
  7. 跨平台:Go可以编译成多个平台上的可执行文件
  8. 垃圾回收

今天老师讲的有点快我来梳理整理一下语法知识点

【梳理分析】

1. Go代码基本框架

go 复制代码
`package main

import (
    "fmt"
)

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

2. Go语言变量的规则

  • 变量名必须以字母或下划线开头,后面可以跟任意数量的字母、数字或下划线。
  • 变量声明使用关键字 var,后面跟变量名和类型,例如 var x int。
  • 变量可以在声明时初始化,例如 var x int = 10,也可以在后面的代码中初始化,例如 x := 10。(也可以使用短变量声明语法 :=,这样编译器会自动推断变量类型噢:)
  • 变量的类型可以省略,编译器会根据变量的值推断类型,例如 x := 10。
  • 变量可以被重新赋值,但必须是相同类型的值。

3. if for switch的语法具体框架

if 语句

if 语句用于判断一个条件是否成立,如果成立就执行一段代码块。if 语句的语法格式如下:

如果有多个条件需要判断,可以使用 if- else if -else 语句:

go 复制代码
if xx {
   执行1
} 

else if xy{
   执行2
} 

else {
   执行3
}

for 循环

for 循环用于重复执行一段代码块,直到循环条件不成立为止。for 循环的语法格式如下: ` for initialization; condition; post

go 复制代码
for initialization; condition; post{
    // 在每次循环中执行这里的代码块
}

其中,initialization 是循环变量的初始化语句,condition 是循环条件,post 是每次循环后执行的语句。这三个部分都可以省略,例如:

go 复制代码
for i := 0; i < 10; i++ 
{
    // 执行这里的代码块10次
    //可用return 或者break离开;
}

switch 语句

switch 语句根据一个表达式的值,执行多个可能的分支中的一个。switch 语句的语法格式如下:

go 复制代码
switch expression {
case value1:
   
case value2:
  
default:
  
}

4.数组 切片 结构体

数组

数组是一组固定长度的数据项,它们具有相同的类型。数组的长度是在声明时指定的,不能更改。数组的语法格式如下:

go 复制代码
var arr [n]type

其中,n 表示数组的长度,type 表示数组中元素的类型。

go 复制代码
a[0] = 10 // 给第一个元素赋值为10
fmt.Println(a[0]) // 输出第一个元素的值

切片

切片是一个动态数组,它可以根据需要自动增长或缩小。切片是一个引用类型,它底层引用了一个数组,并且可以重新分配底层数组的大小。切片的语法格式如下:

go 复制代码
var slice []type

可以使用内置函数 make 来创建一个切片,并指定其长度和容量,例如:

go 复制代码
s := make([]int, 5, 10) // 创建一个长度为5、容量为10的整数切片

可以使用下标访问切片中的元素,下标从0开始,例如:

go 复制代码
s[0] = 10 // 给第一个元素赋值为10
fmt.Println(s[0]) // 输出第一个元素的值

可以使用内置函数 append 向切片中添加元素:

go 复制代码
s = append(s, 20) // 向切片中添加一个元素

结构体

结构体是一组有序的数据项,每个数据项可以是不同类型的值。结构体的语法格式如下:

go 复制代码
type structName struct {
    field1 type1
    field2 type2
    ...
}

其中,structName 表示结构体的名称,field1、field2 等表示结构体中的字段名,type1、type2 等表示字段的类型。

5.函数 指针

函数

函数是一段可重用的代码块,它接收一些输入参数,并返回一个输出结果。函数的语法格式如下:

go 复制代码
func function_name(parameter_list) return_type {
    // 在这里编写函数体
}

func add(x int, y int) int {
    return x + y
}

func sayHello(name string) {
    fmt.Println("Hello, " + name + "!")
}

其中,function_name 是函数的名称,parameter_list 是函数的参数列表,return_type 是函数的返回值类型。

指针

指针是一个变量,它存储了一个变量的内存地址。可以使用 & 运算符获取一个变量的地址,例如:

go 复制代码
x := 10
p := &x // 获取变量 x 的地址
fmt.Println(*p) // 输出变量 x 的值

x := 10 p := &x // 获取变量 x 的地址 可以使用 * 运算符获取一个指针指向的变量的值。

个人思考

虽然感觉go和之前学的语言差不多,但是自己整理梳理好知识点会使新学的知识印象更加的深刻。条理清晰,到时候忘记了还能回来看看,今天是上课的第一天,虽然有点跟不上,(因为老师很多知识是一笔带过)需要我们课下再看文章补补知识。毕竟我们这个专业还是讲实战比较重要,了解基本知识后,跟着老师代码走走会熟悉些

入门建议

听课之余一定要去整理一下go语言语法的基础框架,这样方便自己写代码,忘记格式还可以回来看看,效率会高点。

先了解 Go 语言的基本语法和特性,例如变量、数据类型、流程控制(for if)和函数等。这些基础知识是学习 Go 语言的基础,也是后续学习的必备条件。

另外,建议多做一些实践和练习!

相关推荐
千慌百风定乾坤10 小时前
Go 语言入门指南:基础语法和常用特性解析(下) | 豆包MarsCode AI刷题
青训营笔记
FOFO10 小时前
青训营笔记 | HTML语义化的案例分析: 粗略地手绘分析juejin.cn首页 | 豆包MarsCode AI 刷题
青训营笔记
滑滑滑2 天前
后端实践-优化一个已有的 Go 程序提高其性能 | 豆包MarsCode AI刷题
青训营笔记
柠檬柠檬2 天前
Go 语言入门指南:基础语法和常用特性解析 | 豆包MarsCode AI刷题
青训营笔记
用户967136399652 天前
计算最小步长丨豆包MarsCodeAI刷题
青训营笔记
用户52975799354723 天前
字节跳动青训营刷题笔记2| 豆包MarsCode AI刷题
青训营笔记
clearcold3 天前
浅谈对LangChain中Model I/O的见解 | 豆包MarsCode AI刷题
青训营笔记
夭要7夜宵4 天前
【字节青训营】 Go 进阶语言:并发概述、Goroutine、Channel、协程池 | 豆包MarsCode AI刷题
青训营笔记
用户336901104444 天前
数字分组求和题解 | 豆包MarsCode AI刷题
青训营笔记
dnxb1234 天前
GO语言工程实践课后作业:实现思路、代码以及路径记录 | 豆包MarsCode AI刷题
青训营笔记