go语言中 冒号(:)下划线(_)& 与*的使用

66 阅读1分钟

go语言中 冒号(:)下划线(_)&与*的使用

package main

import (
   "fmt"
)
var str string = “字符串1// var 定义变量 可以一次定义多个变量 go语言中未使用的变量会报错,需要注释或使用"_"丢弃
var a, b, _ int = 1, 2, 3

var num int 100 

func main() {
    newStr :=  “字符串2”; 
    // 等同于 var newStr string
    // newStr = “字符串1”
    // :=只能在函数内使用
    
    fmt.Println(string) // 字符串1
    fmt.Println(newStr) // 字符串2
    
    fmt.Println(a,b)//这里只打印a和b(1,2)未使用变量c 需要用下划线丢弃
    d,_ := 22,33 
    _,e := 22,44 
    fmt.Println(d) // 22
    fmt.Println(e) // 44
    
    fmt.Println(&num) // &符 放变量前边表示获取内存地址
    fmt.Println(&num)
    
    
    var a *int       // 存储的是int的指针,目前为空
    var b int = 4    // 存储的是int的值
    a = &b           // a 指向 b 的地址
    a = b            // a 无法等于 b,会报错,a是指针,b是值,存储的类型不同
    fmt.Println(a)   // 返回了地址
    fmt.Println(*a)  // *a:4返回地址值
    fmt.Println(*&a) // *抵消了&,返回了地址本身
    *a = 5           // 改变 a 的地址的值
    fmt.Println(b)   // b:5,改变后 b 同样受到改变,因为 a 的地址是指向 b 的

}