学习笔记(1):基础语法和常用特性

177 阅读3分钟

1. 基本语法:

声明变量:

Go 语言使用关键字 var 来声明变量,可以同时声明多个变量并指定其类型

var name string
var age int
var height, weight float64

或者可以使用简短声明方式

name := "John"
age := 30

函数:

函数是 Go 语言的基本构建块。使用关键字 func 来定义函数

func add(a, b int) int {
    return a + b
}

条件语句:

Go 语言的条件语句使用 ifelse

if x > 1 {
    fmt.Println("x is greater than 1")
} else {
    fmt.Println("x is less than or equal to 1")
}

循环:

Go 语言提供 for 关键字用于循环操作

for i := 0; i < 5; i++ {
    fmt.Println(i)
}

切片(Slice):

切片是 Go 语言中灵活且强大的数据结构。它是对数组的封装,支持动态大小调整。

numbers := []int{1, 2, 3, 4, 5}

2.常用特性

并发(Concurrency):

Go 语言天生支持并发编程,通过 Go 协程(Goroutine)和通道(Channel)实现。Go 协程是轻量级的执行线程,可以在并发环境中高效地运行

func printNumbers() {
    for i := 0; i < 5; i++ {
        fmt.Println(i)
    }
}

func printLetters() {
    for char := 'a'; char < 'e'; char++ {
        fmt.Println(string(char))
    }
}

func main() {
    go printNumbers()
    printLetters()
}

通道(Channel):

通道是用于在 Go 协程之间进行通信的管道。它允许并发安全地传递数据

func main() {
    ch := make(chan int)
    go func() {
        ch <- 42
    }()
    value := <-ch
    fmt.Println(value) // 输出 42
}

结构体(Struct):

结构体是一种自定义数据类型,可以包含不同类型的字段,类似于面向对象语言的类

type Person struct {
    Name string
    Age  int
}

func main() {
    p := Person{Name: "Alice", Age: 25}
    fmt.Println(p.Name, p.Age) // 输出 Alice 25
}

包(Package):

Go 语言通过包的概念组织代码,一个包可以包含多个 Go 文件。使用 import 关键字导入其他包

package main

import "fmt"

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

3. 标准库和工具:

Go 语言的标准库非常强大且完善,覆盖了各种常用功能,例如处理文件、网络通信、加密、并发等。Go 还提供了丰富的工具集,如 gofmt、go vet 和 go doc 等,用于格式化代码、静态检查和生成文档。

4. 生态系统:

Go 语言的生态系统日益丰富,拥有众多优秀的开源项目和框架,如 Gin、Gorm、Go-Zero、Beego 和 Echo 等,用于快速构建 Web 应用程序。此外,Docker、Kubernetes 和 Etcd 等知名的云原生项目也是使用 Go 语言开发的

总结:

Go具有简洁高效、易于学习和使用的特点,同时还拥有出色的并发支持和强大的标准库,Go语言的语法设计简单直观,。它摒弃了冗余的语法,代码量少,同时编译速度快,执行效率高,初步了解Go语言的并发特性,通过协程和通道,我们能够在并发编程中更加容易地进行通信和协作,我们可以自定义复杂的数据类型,类似于面向对象语言的类不仅如此,Go语言还有着庞大的社区和生态系统,可以为我们提供丰富的资源和支持。希望通过不断地练习和学习,我能够熟练使用Go语言,并在发挥它的优势。