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("谁都不等于")
    }

}
posted @ 2019-12-10 19:01  杨鑫Zz  阅读(294)  评论(0编辑  收藏  举报