Go基础-控制流程、函数、方法

if 语句

func main() {
    // age := 18
    // if age <= 18 {
    //     fmt.Println("少年")
    // } else if age >= 18 && age <= 30 {
    //     fmt.Println("青年")
    // } else {
    //     fmt.Println("老年")
    // }

    // 特殊写法 此种方式if 外面访问不了age
    if age := 18; age <= 18{
        fmt.Println("少年")
    }else if age >= 18 && age <= 30 {
            fmt.Println("青年")
        } else {
            fmt.Println("老年")
        }
}

for 语句

func main() {
    //基本格式
    for i := 0; i < 10; i++ {
        // fmt.Println(i)
    }

    // var i = 5
    // for ; i < 10; i++{
    //     // fmt.Println(i)
    // }

    // var i = 5
    // for i < 10 {
    //     fmt.Println(i)
    //     i++
    // }

    //for range 循环
    // s := "Hello,世界"
    // for i, v := range s {
    //     // fmt.Println(i,v)
    //     fmt.Printf("%d %c\n", i, v)
    // }

    //九九乘法表
    // for i := 1; i < 10; i++ {
    //     for j := 1; j <= i; j++ {
    //         fmt.Printf("%d*%d=%d\t", j, i, j*i)
    //     }
    //     fmt.Println("")
    // }

    //跳出循环
    // for i:= 0;i <10;i++{
    //     fmt.Println(i)
    //     if i == 5 {
    //         break;
    //     }
    // }

    //跳过i=5的此次循环
    for i := 0; i < 10; i++ {
        if i == 5 {
            continue
        }
        fmt.Println(i)

    }
}

switch语句

func main() {
    // var n = 5
    // switch n {
    // case 1:
    //     fmt.Println("1")
    // case 2:
    //     fmt.Println("2")
    // case 3:
    //     fmt.Println("3")
    // case 4:
    //     fmt.Println("4")
    // case 5:
    //     fmt.Println("5")
    // default:
    //     fmt.Println("错误输入")
    // }

    switch n := 2; n {
    case 1, 3, 5, 7, 9:
        fmt.Println("奇数")
        // fallthrough // 满足了该条件继续执行下一个条件
    case 2, 4, 6, 8, 10:
        fmt.Println("偶数")
    default:
        fmt.Println("超出了我的范围")
    }
}

函数示例

func f1(x int, y int) {
    fmt.Println(x + y)
}

func f2() {
    fmt.Println("")
}

func f3() int {
    return 1
}

func f4(x int, y int) (ret int) {
    return ret
}

func f5(x, y int) int {
    return x + y
}
//可变参数,y可以传1,2,3
func f6(x string, y ...int) {
    fmt.Println(y)
}
//多个返回值
func f7() (name string, age int) {
    return name, age
}
func main() {
    f6("张三", 50, 60, 70)
}

 方法示例

//结构体 类似model
type person struct {
    name string
    age  int
    idno string
}

//当结构体比较大的时候尽量使用结构体指针,减少程序内存开销
func newPerson(name string, age int, idno string) *person {
    return &person{
        name: name,
        age:  age,
        idno: idno,
    }
}

//方法是作用在特定类型的函数
//(p person) 调用方法的接收者
func (p person) getIDNo() {
    fmt.Printf("%s的身份证是", p.idno)
}

func main() {
    p1 := newPerson("张三", 18, "31000012131313x")
    fmt.Printf("%T\n", p1) //*main.person
    p1.getIDNo()
}

 

posted @ 2021-11-25 16:10  wish_yang  阅读(36)  评论(0编辑  收藏  举报