zoukankan      html  css  js  c++  java
  • 8.18Go之变量作用域

    8.18Go之变量作用域

    变量位置不同其作用域可以分为以下三个类型

    • 局部变量--->函数内定义的变量

    • 全局变量--->函数外定义的变量

    • 形参--->参数列表当中定义的变量


    局部变量

    特点:

    • 作用域只在函数体内,函数的参数和返回值变量都属于局部变量。

    • 函数调用结束后这个局部变量就会被销毁。

    • Go语言中局部变量声明以后必须使用

    示例:

    package main

    import "fmt"

    func main() {
    var a = 3
    var b = 4
    c := a+b
    fmt.Println("a与b的和为:", c)
    }

    全局变量

    特点:

    • 函数体外声明的变量

    • 全局变量只需要在一个源文件中定义,就可以在所有源文件中使用--->需要使用import关键字引入全局变量所在的包

    • 全局变量声明必须以var 关键字开头,在外部包中使用全局变量的首字母必须大写。

    • Go中全局变量可以声明不使用

    示例:

    package main

    import "fmt"

    var globalVariable int //这是一个全局变量

    func main() {
    c := 3 //这是一个局部变量
    /*
    声明了全局变量但不使用
    */
    fmt.Println(c)
    }

    Go语言程序中全局变量与局部变量名称可以相同,但是函数体内的局部变量会被优先考虑。

    形参

    特点:

    • 定义函数时函数名后面括号中的变量叫做形式参数(简称形参)

    • 形式参数只在函数调用时才会生效,函数调用结束后就会被销毁,

    • 函数未被调用时,函数的形参并不占用实际的存储单元,也没有实际值。

    示例:

    package main

    import "fmt"

    func bubbleSortNo2(brr []int) {
    for i := 0; i < (len(brr)-1); i++ {
    for j := 0; j < (len(brr) - 1 - i); j++ {
    if brr[j]-brr[j+1] > 0 {
    temp := brr[j]
    brr[j] = brr[j+1]
    brr[j+1] = temp
    }
    }
    }
    for i, j := range brr {
    fmt.Println("第", i, "号为的值为:", j)
    }
    }

    func main() {
    arrays := []int{7,9,6,5,3}
    bubbleSortNo2(arrays)
    }
    /*
    brr是形参
    */

     

  • 相关阅读:
    拯救者R720安装Ubuntu之后无法连接无线网络
    centos源码安装mysql5.7.25-boost
    mysql的报错
    Nginx配置文档
    centos6.5删除/boot后恢复
    Spring Boot 初体验(11)添加JSP支持
    Spring Boot 初体验(10)使用使用freemarker
    Spring Boot 初体验(9)使用thymeleaf
    Spring Boot 初体验(8)配置server信息
    Spring Boot 初体验(7)全局异常捕捉
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15169314.html
Copyright © 2011-2022 走看看