Go 语言入门指南:基础语法和常用特性解析(上)|青训营

41 阅读2分钟

Go语言是一种由Google开发的开源编程语言,它简洁、高效、易用,并且具有很多强大的特性和优势。本文将对Go语言的基础语法和常用特性进行解析,总结如下。

一、基础语法

变量和常量:

Go语言使用var关键字声明变量。同时,可以使用:=进行变量的自动类型推断,并且必须在函数内部使用。常量使用const关键字声明,一旦声明不能更改。

package main

import "fmt"

func main() {
    var a int          // 声明变量a
    a = 10             // 赋值操作
    b := 20            // 自动类型推断
    const c = 30       // 声明常量
    fmt.Println(a, b, c)
}

数据类型:

Go语言拥有基本数据类型(例如整型、浮点型、布尔型等)和复合数据类型(数组、切片、映射、结构体等)。同时也支持自定义数据类型。

package main

import "fmt"

func main() {
    var num int                      // 声明整型变量
    num = 10                         // 赋值
    var name string = "John"         // 声明字符串变量
    score := 90.5                    // 自动类型推断声明浮点型变量
    var isSuccess bool = true         // 声明布尔型变量
    fmt.Println(num, name, score, isSuccess)
}

控制语句:

Go语言的控制语句包括条件语句(if、switch),循环语句(for、range),以及特殊的语句(continue、break、goto)。

package main

import "fmt"

func main() {
    // 条件语句
    num := 10
    if num > 0 {
        fmt.Println("num是正数")
    } else if num < 0 {
        fmt.Println("num是负数")
    } else {
        fmt.Println("num是零")
    }
    
    // 循环语句
    for i := 0; i < 5; i++ {
        fmt.Println(i)
    }
    
    // 特殊语句
    for i := 0; i < 10; i++ {
        if i%2 == 0 {
            continue  // 跳过本次循环
        }
        if i == 7 {
            break  // 结束循环
        }
        fmt.Println(i)
    }
}

函数:

Go语言中的函数使用func关键字进行定义。函数可以返回多个值,并且函数也可以作为参数传递给其他函数。

package main

import "fmt"

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

func multiply(a, b float64) float64 {
    return a * b
}

func main() {
    sum := add(2, 3)
    product := multiply(2.5, 4.5)
    fmt.Println(sum, product)
}

指针:

Go语言支持指针类型,可以通过指针来访问和修改变量的值。同时,Go语言还提供了new和make两个内置函数用于创建指针类型的对象。

package main

import "fmt"

func main() {
    num := 10
    fmt.Println("num的值:", num)
    fmt.Println("num的内存地址:", &num)

    // 定义指针变量
    var p *int
    p = &num // 将num的内存地址赋值给指针变量p

    fmt.Println("指针变量p的值:", p)
    fmt.Println("指针变量p指向的值:", *p)

    // 修改指针指向的值
    *p = 20

    fmt.Println("修改后的num的值:", num)
}


在上面的示例代码中,我声明了一个整型变量num并赋值为10。然后,我通过&num获取了num的内存地址,并将其赋值给指针变量p。通过*p可以获取指针p指向的值,也就是num的值。最后,通过修改*p的值,即可以修改num的值。