golang第二天,变量|8月更文挑战

什么是变量

变量是为了存储特定类型的值而提供给内存位置的名称

在go中声明变量有多种语法。

所以变量的本质就是一小块内存,用于存储数据,在程序运行的过程中数值可以改变。

变量可以说是我们写的程序的一个最基本的组成单元或者叫组成单位。

如何将我们需要的数据存入计算机中,这里就引入了变量

总结:

  • 变量是内存中的一块存储空间
  • 通过定义变量申请存储空间

作用: 通过对变量的操作来实现对我们关注的数据的操作
应用场景: 在计算机中存储我们需要的数据,这时候就需要用到变量

如何使用变量

var名称类型是声明耽单个变量的语法

以字母或下划线开头,由一个或多个字母,数字,下划线组成

  1. 不赋值有默认的零值(根据数据类型来确定零值)

    • 声明后若不赋值,则使用默认值
    • 根据值自行判断变量类型
var value1 int


var name type
name = value
复制代码
  1. 简短声明
value2 := "小阿肥"
复制代码

这种方式它只能被用在函数体内,而不可以用于全局变量的声明与赋值

例如:

package main
var a = "hello"
var b string = "world"
var c bool

func main() {
    println(a, b, c)        // 结果: hello world false
}
复制代码
  1. 直接赋值
var value3 = 100     // 这种情况,编译器自动做类型推导
复制代码
  1. 多变量声明
  • 直接以逗号分隔,声明与赋值分开,若不赋值,则存在默认值
var value1, value2, value3 type
value1, value2, value3 = v1, v2, v3
复制代码
  • 直接赋值,下面的变量类型可以是不同的类型
var value1, value2, value3, value4, value5 = 1, "小阿肥“,2.3, false
fmt.Println(value1, value2, value3, value4, value5)
复制代码
  • 集合类型
var (
    value1 type1
    value2 type2
)
复制代码
  1. 简短声明,多次赋值
value1, value2, value3, value4, value5 := 1, "小阿肥", 2.3, false
复制代码
  1. 申请多个全局变量,在函数体外部
var (
    value int
   slices []int
   interfacex interface{}
)
复制代码
  1. 变量的交换
var i = 100
var j = 200
fmt.Println(i, j)
i, j = j, i
fmt.Println(i, j)
复制代码

注意事项

  1. 变量未必不需要添加分号
  2. go对于已声明但未使用的变量会在编译阶段报错
  3. _下划线是个特殊的变量名,任何赋予它的值都会被丢弃
_, x := 1, 2
fmt.Println(_)
fmt.Println(x)
复制代码

image.png

  1. 变量访问控制

    • 大写字母开头的变量是可导出的,即其它包(后面会讲到)可以读取的,是公有变量(相当于传统编程语言中class的public权限修饰符)
    • 小写字母开头的就是不可导出的,是私有变量,仅本包可以使用(相当于传统编程语言中class的private权限修饰符
  2. 变量必须先定义才能使用

  3. go语言是静态语言,要求变量的类型和赋值的类型必须一致

  4. 变量名不能冲突。(同一个作用域内不能冲突)

  5. 简短定义方式,左边的变量名至少有一个是新的

  6. 简短定义方式,不能定义全局变量。

  7. 变量的零值。也叫默认值。

  8. 变量定义了就要使用,否则无法通过编译。

  9. 如果在相同的代码块中,我们不可以再次对于相同名称的变量使用初始化声明

  10. 如果你在定义变量 a 之前使用它,则会得到编译错误 undefined: a

  11. 如果你声明了一个局部变量却没有在相同的代码块中使用它,同样会得到编译错误

最后

刚学golang,希望大家监督并且一起努力

有兴趣的小伙伴,欢迎关注我订阅号:EntrepreneurialG