• Go语言的基本语法(二)


      一·if   -else

      (1)

    package main
    
    import "fmt"
    
    // if - else
    //func main(){
    //    // 先定义 一个变量
    //    var a int=90
    //    // if 条件{} 大括号和条件之间不能进行换行
    //
    //    if a>90{
    //        fmt.Println("大于90")
    //    }else if a<90{
    //        fmt.Println("a 小于90")
    //    }else{
    //        fmt.Println("a等于90")
    //    }
    //
    //}

      (2)在条件作用域中定义的变量可以 使用 作用域的问题

    // 在条件作用域中定义的变量可以 使用 作用域的问题
    // 在函数中 进行条件判断
    func main(){
        if a:=90;a>90{
            fmt.Println("大于90")
        } else if a<90{
            fmt.Println("小于90")
        }else{
            fmt.Println("等于90")
        }
    }

      二. 包的使用

    // 包的使用
    package main
    
    import "mypackage"
    import "fmt"
    
    
    
    func main() {
    
        //想使用mypackage包下的test函数和test1函数
        mypackage.Test1()
        fmt.Println("xxx")
    
    }
    
    使用外部的包必须首字母大写  使用同一包内的函数导入 导入的包必须一致

      三.for 循环

    package main
    
    import "fmt"
    
    // for 循序
    func main(){
        // 1.for 语法
        //for i:=0;i<10;i++{
        //    fmt.Println(i)
        //}
        // 三部分,都可以省略
        // (1)先省略第一部分 i:0
    
        //i:=0
        //for ;i<10;i++{
        //    fmt.Println(i)
        // (2)省略第三部分
        //i:=0
        //for ;i<10;{
        //    i++
        //    fmt.Println(i)
        // (3)省略第二部分
    //    for ;;{
    //        fmt.Println("yyyy") // 死循环 没有哦终止条件 相当于while True
    //}
    //    for {
    //        // 死循环的写法
    //        fmt.Println("hjah")
    //    }

      (2)break 和continue 的用法

    package main
    
    import "fmt"
    
        // for 循序
    func main(){
        // (4) break 和continue
        //for i:=0;i<20;i++{
        //    if i == 5{
        //        // 如果i 等于5 就直接终止种鸽函数
        //        break
        //    }
        //    fmt.Println(i)
        //}
        // continue 的用法
        for i:=0;i<20;i++{
            if i==5{
                continue
            }
            fmt.Println(i) // 0 不等于5 打印 过滤掉5 的值
        }
    
    }

      (3)switch 的基本用法

    package main
    
    import "fmt"
    
    // switch的基本语句
    
    func main(){
        // 基本用法
        a:=11
        switch a {
        case 1:
            fmt.Println("我是1")
    
        case 2:
            fmt.Println("我是2")
        case 10:
            fmt.Println("我是10")
        // 设置以上都不满足 我们default
        default:
            fmt.Println("我是默认值")
        }

      (2)多值匹配

        

    package main
    
    import "fmt"
    
    // switch的基本语句
    
    func main(){
        // 基本用法
        a:=12
        switch a {
        case 1,4,5:
            fmt.Println("我是1")
    
        case 2,6,8:
            fmt.Println("我是2")
        case 10,11,12:
            fmt.Println("我是10,11,12 中的12")
        // 设置以上都不满足 我们default
        default:
            fmt.Println("我是默认值")
        }
    
    
    }

      (3)无值表达式

    unc main(){
            // 基本用法
        
        a:=10
        switch {
        case a>10:
            fmt.Println("大于10")
        case a<10:
        fmt.Println("小于10")
        default:
            fmt.Println("默认值")
        }

      (4)//Fallthrough 的用法:穿透, 无条件的执行下一个case 的内容

    package main

    import "fmt"

    // switch的基本语句

    func main(){
    // 基本用法

    //switch a {
    //case 1,4,5:
    // fmt.Println("我是1")
    //
    //case 2,6,8:
    // fmt.Println("我是2")
    //case 10,11,12:
    // fmt.Println("我是10,11,12 中的12")
    //// 设置以上都不满足 我们default
    //default:
    // fmt.Println("我是默认值")

    // 无表达式的switch
    a :=10
    switch a {
    case 1:
    fmt.Println("1")
    case 2:
    fmt.Println("2")
    case 10:
    fmt.Println("10")
    test()
    fallthrough
    case 12:
    fmt.Println("穿透")

    }


    }

    // 外部的函数
    func test(){
    fmt.Println("穿透1")
    }

      (5)数组和迭代及多维数组

    package main
    
    import "fmt"
    
    // 数组  值传递(不可变)和值的引用(可变)
    
    func main(){
        // var a [5]int //定义了一a 的数组 长度为5的int类型的数组
        // a[1]=999 // 把索引为1的位置换成100
        // (1)定义并未赋初值
        //var a [5]int
        //fmt.Println(a)  //  [0 0 0 0 0]
        //a[1]=999
        //fmt.Println(a)  // [0 999 0 0 0]
    
        // (2)定义并切赋初值
        // var b[6]int=[6]int{1,2,3,4,8}  // 长度必须小等于6 不足0补全
        // fmt.Println(b)
        // var b=[6]int{1,2,3}  //  [1 2 3 0 0 0]
        // fmt.Println(b)
    
        // (3)第67 的位置设置为6767 a[-9]是不支持的哦
        // a:=[100]int{1,2,3,65:6767}
        // fmt.Println(a)
    
        // (4)数组是值类型 ()>>> 所有的函数传参都是copy 传递
        // a:=[4]int{1,2,3}
        // test1(a)  // 函数加括号执行调用 [100,2,3,0]  将0 的位置1 替换成100
        // fmt.Println(a)  // 打印[1,2,3,0] // 原值是不会发生改变的
    
        // (5) 数组的长度 内置函数的len
        //a:=[10]int{6,6,7}
        //fmt.Println(len(a))
    
        // (6)数组的大小是类型的一部分
        // var a [4]int=[4]int{1,2}
        // var b [5]int=[5]int{4,5}
    
         // fmt.Println(a=b) 没办法进行大小的比较
         // (7)go 中的与(&&) 或(||) 非!
        // a:=10
        // if (a>10||a<6){
        //     fmt.Println("ye")
        //
        // }else if  !(a>10) {
        //     fmt.Println("ok")
        //}
    
        // (8)数组的迭代
        //a:=[5]int{1,4,5,6,70}
        //for i:=0; i<len(a);i++{
        //    fmt.Println(a[i]) // 获取数字的值 索引取值
        //}
    
        //  通过range迭代
        //for i,v:=range a{
        //    fmt.Println(i,v)  // i 为索引  v 为值
        //}
    
        // (9) 多维数组
        var a [5][2]int
        a[0][1]=10
        fmt.Println(a)  // [[0 10] [0 0] [0 0] [0 0] [0 0]]
    
    
    }
    
    // 外部函数b
    func test1(b [4]int){
        b[0]=100
        fmt.Println(b)
    }
  • 相关阅读:
    媒介管理系统权限设计方案
    document.ready和window.onload区别,顺带jQuery的ready方法
    nvm管理node版本
    async await一些小结
    Git学习
    详解JavaScript中的正则表达式
    JavaScript中的事件循环机制跟函数柯里化
    前端面试遇到的问题
    ES6在工作中会用到的核心知识点讲解
    JavaScript中的事件委托机制跟深浅拷贝
  • 原文地址:https://www.cnblogs.com/mofujin/p/12019244.html
Copyright © 2020-2023  润新知