• go 数组,if,for,闭包,


    package main
    
    import "fmt"
    
    //定义一个包的话必须在环境变量下的文件 切你写的函数名首字母必须是大写,不是大写的代表只在该包内使用
    // 要连个值能够相等的话 只要是有一点不一样那么这样个类型就不会相等
    
    //函数高级
    package main
    
    import "fmt"
    
    //闭包函数:定义在函数内部,对外部作用有引用
    //
    //内层函数:定义在函数内部的函数
    //go中函数内部定义的函数是不能有名的,需要定义匿名函数:没有名字
    func test(a int)  {
        func() {
            fmt.Println("我是内层函数")
        }()
    }
    //闭包函数
    func test(a int) (func()) {
        //var c int =100
        b:=func() {
            fmt.Println(a)
            fmt.Println("我是闭包函数")
        }
        return b
    }
    定义一个函数,传入函数,返回函数
    func test(a func()) func()  {
        b:= func() {
            fmt.Println("我先执行")
            a()
            fmt.Println("函数执行完了")
        }
        return b
    }
    func test2()  {
        fmt.Println("xxxx")
    
    }
    
    
    //给类型命别名
    type MyFunc  func(a int,b int) func()
    
    type MyInt int
    func test() (MyFunc)  {
    
        c:= func(a int,b int) func(){
    
            return func() {
    
            }
        }
        return c
    
    }
    func main() {
        //a:=test(3)
        //a()
        //a:=test2
        //a=test(a)
        //a()
        var a MyInt=10
        var b int =90
        a=MyInt(b)
        fmt.Println(a)
    }
    
    
    //for
    func xxx()  {
        for i := 0; i>10;i++  {
            fmt.Println(i)
            //简单的for循环,i++可以放在函数内部,i:=0可以在for循环的外部定义
            //break和continue跟其他任何语言都一样
        }
    }
    //for 进阶
    func ddd()  {
        for i,v:=range a{
            //a是可迭代对象,range是关键字
            //i,索引
            //v就是a迭代器里面的值
            fmt.Println(i,v)
        }
    }
    
    //与或非
    //&&   ||  !
    
    //定义数组
    func aaaa()  {
        a:=[6] int{1,2,3,4:100}
        //定义一个数组 长度为6,里面的值为1,2,3,0,0,0
        fmt.Println(a[0])
        //4:100,索引为4的值设置为100
        //索引取值获取0位值
        //所有的函数中传的参数都是copy过来的值在函数内部更改不了外部的值,除非传的是内存地址
    }
    
    //定义多维数组
    func qqq()  {
        var a [10][2]int
        //生成一个长度为10的列表,放入了长度为2的列表10个
        fmt.Println(a[0][1])
    }
    
    
    //另一种if判断
    a:=10
    switch a {
    case 1:
    fmt.Println("1")
    fmt.Println("xxxx")
    case 2:
    fmt.Println("2")
    case 10:
    fmt.Println("10")
    //穿透,无条件执行下一个case的内容
    fallthrough
    case 11:
    fmt.Println("11")
    test5()
    fallthrough
    case 12:
    fmt.Println("12")
    }
    
    
    }
    
    
    import "fmt"
    // if else 基本用法
    func main() {
        a :=20
        if a>20{
            fmt.Println("xiao")
        }else if a<20{
            fmt.Println("da")
        }else {
            fmt.Println("谁都不等于")
        }
    
    }
  • 相关阅读:
    Git问题(Your local changes to the followingcant checkout because of unmerged files)
    Java实体映射工具 MapStruct
    获取一段代码执行花费的时长
    mybatis的xml中trim标签
    SQL语句统计每天、每月、每年的数据
    Java常见异常
    跨域与跨域访问
    java8新特性
    java中i=i++问题分析
    钉钉——第三方应用嵌入钉钉【微应用】
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/12018515.html
Copyright © 2020-2023  润新知