Go语言学习(3) - 变量与初始化

栏目: Go · 发布时间: 6年前

内容简介:变量是计算机语言中存储数据的抽象概念,变量通过变量名访问变量的本质是计算机分配的一小块内存,专门用于存放指定数据,在程序运行过程中该数值可以改变变量的存储往往具有瞬时性、或者说是临时存储,当程序运行结束,存放该数据的内存就会释放,该变量就会消息

变量的概念

变量是计算机语言中存储数据的抽象概念,变量通过变量名访问

变量的本质是计算机分配的一小块内存,专门用于存放指定数据,在程序运行过程中该数值可以改变

变量的存储往往具有瞬时性、或者说是临时存储,当程序运行结束,存放该数据的内存就会释放,该变量就会消息

Go语言的变量名由数字、字母、下划线组成,首个字符不能是数字

声明变量

声明变量有多种形式:

1.未初始化话的标准格式

var  变量名  变量类型
复制代码

2.未初始化的批量格式

不用每行都用 var 声明

var(
    a int
    b string
    c []float32
    d func() bool
    e struct{
        x int
        y string
      }
)
复制代码

未初始化变量的默认值

  • 整型和浮点型变量默认值为 0
  • 字符串默认值为空字符串
  • 布尔型默认值为false
  • 函数、指针变量默认值为 nil
package main

import "fmt"

func main() {
    var(
        a int
        b string
        c []float32
        d bool
        e []int
        f [3]int
        h int32 = 100
        g func() string
    )
    fmt.Printf("%T , % v \n", a , a)
    fmt.Printf("%T , % v \n", b , b)
    fmt.Printf("%T , % v \n", c , c)
    fmt.Printf("%T , % v \n", d , d)
    fmt.Printf("%T , % v \n", e , e)
    fmt.Printf("%T , % v \n", f , f)
    fmt.Printf("%T , % v \n", h , h)
    fmt.Printf("%T , % v \n", g , g)
}
复制代码

输出如下:

int ,  0 
string ,  
[]float32 , [] 
bool , false 
[]int , [] 
[3]int , [ 0  0  0] 
int32 ,  100 
func() string , <nil> 
复制代码

3.初始化变量的标准格式

  • var 变量名 类型 = 表格式

4.初始化变量的编译器自动推断类型格式

  • var 变量名 = 表达式

5.初始化变量的简短声明格式(短变量声明格式)

  • 变量名 := 表达式
  • 使用 := 赋值操作符, := 可以高效的创建一个新的变量,称之为初始化声明
  • 声明语句省略了 var 关键字
  • 声明类型将由编译器自动推断
  • 这是声明变量的首选方式,但是它只能被用在函数体内,而不可以用于全局变量的声明与赋值
  • 该变量名必须是没有定义过的变量,若定义过,将发生编译错误
  • 在多个短变量声明和赋值中,至少有一个新声明的变量出现在左侧中,那么即便有其他变量名可能是重复声明的,编译器也不会报错

变量多重赋值

  • Go语法中,变量初始化和变量赋值是两个不同的概念,Go语言的变量赋值与其他语言一样,但是 Go 提供了其他 程序员 期待已久的多重赋值功能,可以实现变量替换,多重赋值让Go语言比其他语言减少了代码量

如想要对 q 和 w 变量的值进行互换:

    q := 10
    w := 20
    fmt.Println(q , "   " , w)

    q, w = w, q
    fmt.Println(q , "   " , w)
复制代码

得到的结果为:

10      20
20      10
复制代码

有了变量的多重赋值,就不用像 Java 中引入第三个变量,来进行两个变量值的互换。

匿名变量

  • Go语言的函数可以返回多个值,而事实上我们并不是对所有的返回值都用得上,那么就可以使用匿名变量,用“_”下划线替换即可。
  • 匿名变量不占用命名空间,不会分配内存

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Probability and Computing

Probability and Computing

Michael Mitzenmacher、Eli Upfal / Cambridge University Press / 2005-01-31 / USD 66.00

Assuming only an elementary background in discrete mathematics, this textbook is an excellent introduction to the probabilistic techniques and paradigms used in the development of probabilistic algori......一起来看看 《Probability and Computing》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试