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

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

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

变量的概念

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

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

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

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

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

查看所有标签

猜你喜欢:

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

自流量生活

自流量生活

斯科特·福克斯(Scott Fox) / 王晶晶 / 中信出版社 / 2018-8-1

一位远嫁他国的平凡女孩,陌生的环境、陌生的语言……她不得不从头学起。有写作爱好的她在网络上记录着她学习生活中的小故事。神奇的是,越来越多的人联系她,有人要付钱看新的故事,还有人想把这些故事拍成电视短片。她是怎么做到的? 这本书将告诉你如何利用互联网打造自己的“流量”生活,使你既能获取收入,又能以自己喜欢的方式过一生。在阅读这本书的过程中,你可能会找到自己喜欢的生活方式,了解成功打造自身“流量......一起来看看 《自流量生活》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器