Go 语言入门-基础语法和常用特性-青训营笔记

120 阅读3分钟

Go语言,作为一种现代编程语言,以其简洁的语法和强大的并发支持而受到广泛欢迎。本文将深入探讨Go语言的基础语法和常用特性,包括变量声明、控制结构、数据结构、函数、指针、结构体等内容,帮助读者更好地理解和使用Go语言。

一、基础语法

1. Hello World

  

    package main

   import "fmt"

   func main() {

       fmt.Println("hello world")

   }

- 在这个示例中,package main 表示程序的入口点,import "fmt" 导入了格式化输出包。main 函数是程序的执行起点,fmt.Println 用于输出字符串。

2. 变量

  • 声明方式:
     var a int = 1
         b := "Hello"

在这里,var 关键字用于显式声明变量类型,而 := 是简短声明方式,适用于局部变量。

常量的声明则使用 const 关键字

  • 常量声明:
const i = 500

常量在程序运行时不可更改,适合用于定义不变的值。

3. if else

   var grade = 98

   func main() {
       if grade >= 60 {
           fmt.Println("及格")
       } else {
           fmt.Println("不及格")
       }
   }
  • Go语言的条件语句使用 if 和 else,不需要括号,且必须直接接大括号。
  • 这种简洁的语法使得代码更易读,减少了不必要的符号。

4. 循环

  

   for i := 0; i < 3; i++ {
       if i%2 == 0 {
           break
       }
       fmt.Println(i)
   }
  • Go 只有 for 循环,支持 break 和 continue。

5. switch

   i := 2
   switch i {
   case 1:
       fmt.Println("1")
   case 2:
       fmt.Println("2")
   default:
       fmt.Println("other")
   }

- switch 不需要括号,自动终止。

6. 数组

 

   num := [5]int{3, 1, 2, 4, 5}
   fmt.Println(num)
  • Go语言中的数组是固定长度的
  • 数组的长度在声明时就确定,适合用于存储固定数量的数据

7. 切片

   animals := []string{"monkey", "bear", "bird"}
   animals[0] = "monkey"
   animals = append(animals, "fish")
  • 切片是可变长度的数组,使用 append() 和 copy() 操作。
  • 切片是Go语言中非常重要的动态数组

8.map

   grades := make(map[string]int)
   grades["Tom"] = 88
   delete(grades, "Jane")
   fmt.Println(grades["Tom"])
  • map 是一种无序的键值对集合
  • map 适合用于快速查找和存储关联数据

9. range

 

   nums := []int{1, 2, 3}
   for i, num := range nums {
       fmt.Println("index:", i, "num:", num)
   }
  • range 关键字用于遍历数组、切片和映射

10. 函数

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

    func main() {
        res, err := add(21, 29)
        if err != n {
            fmt.Println("Error:", err)
        } else {
            fmt.Println(res)
        }
    }
  • Go语言的函数支持多返回值

11.指针

    func add3(n *int) {
        *n += 3
    }

    func main() {
        n := 7
        add3(&n)
        fmt.Println(n) // 输出结果为10
    }
  • Go语言支持指针,允许直接操作内存地址

12. 结构体与结构体方法

    type Person struct {
        Name string
        Age  int
    }

    func (p Person) Greet() {
        fmt.Println("Hello, my name is", p.Name)
    }

    func main() {
        p := Person{Name: "Alice", Age: 30}
        p.Greet()
    }
  • 结构体是带类型的字段集合,支持方法定义。

13. 并发编程

  • Go 语言内置支持并发,通过 goroutine 和 channel 实现:
    go func() {
        fmt.Println("This runs concurrently")
    }()

Go语言因其高性能、高并发、简单易学等特点被广泛使用,许多知名公司如字节跳动、腾讯、谷歌等都在使用Go语言。通过掌握Go语言的基础语法和常用特性,开发者可以更高效地构建高性能的应用程序。无论是进行系统编程、网络编程,还是开发微服务,Go语言都提供了强大的工具和灵活的语法。