美文网首页
sp1.常见类型与循环

sp1.常见类型与循环

作者: Amok校长 | 来源:发表于2019-12-05 10:30 被阅读0次
    package main
    
    import (
        "fmt"
        "strings"
    )
    
    // 全局变量
    var (
        name string
        age  int
        isOk bool
    )
    
    // 全局常量
    const pi = 3.141592653
    
    // 批量声明常量
    const (
        statusOk = 200
        notFount = 404
    )
    
    // iota
    const (
        c1 = iota //0
        c2 = 100  //100
        _  = iota
        c3 //3
        c4 //4
    )
    
    // 多个常量在一行声明
    const (
        d1, d2 = iota + 1, iota + 2 //d1:1 d2:2
        d3, d4 = iota + 1, iota + 2 //d3:2 d4:3
    ) // const中每新增一行常量声明 ,iota计数一次
    
    func main() {
        name = "大象"
        age = 16
        isOk = true
    
        //Go语言中必须声明变量,不使用编译不通过
    
        // 1.1声明变量同时赋值
        var s1 string = "哈哈"
        fmt.Println(s1)
    
        // 1.2.类型推导
        var s2 = "20"
        fmt.Println(s2)
    
        // 1.3.简短变量声明,只能在函数里面用
        s3 := "小红书"
        fmt.Println(s3)
    
        // 1.4.匿名变量 _
    
        /*注意事项:
        1.函数外的每个语句, 必须以关键字const、var、func等
        2.:=不能在函数外使用
        3._占位符
        */
    
        // 2.1 iota
        fmt.Println(c1, c2, c3, c4)
    
        // 2.2 iota计数机制
        fmt.Println(d1, d2, d3, d4)
    
        // 3.1 进制转换
        var i1 = 101
        fmt.Printf("%d\n", i1)
        fmt.Printf("%b\n", i1) //打印二进制
        fmt.Printf("%o\n", i1) //打印八进制
        fmt.Printf("%x\n", i1) //打印16进制
        // 八进制
        i2 := 077
        fmt.Printf("%d\n", i2) //打印十进制
        // 十六进制
        i3 := 0x12345
        fmt.Printf("%d\n", i3) //打印十进制
    
        // 3.2 查看变量类型
        fmt.Printf("%T\n", i3)
    
        // 4.1 浮点型
        f1 := 1.23456
        fmt.Printf("%T\n", f1) //默认float64类型
    
        // 5.1 bool型
        g1 := true
        var g2 bool
        fmt.Println(g1)
        fmt.Println(g2) // 默认值是false
    
        // 6.1 字符串
        // Go语言中字符串是双引号包裹的
        // Go语言中字符是单引号包裹的
        h1 := "小王子"
        h2 := 'h'
        fmt.Printf("%T,%T\n", h1, h2) //string,int32
    
        // 6.2 多行字符
        h3 := `
        小狐狸对小王子说:
        "很多事是要用心去看的".
        小王子说:那只玫瑰对于我是独一无二的,它驯养了我!
        `
        fmt.Println(h3)
    
        // 6.3 字符串相关操作
        h4 := `D:\GO\Src`
        fmt.Println(len(h4)) //获取字符串的长度
        h5 := "(~ ̄(OO) ̄)ブ"
        println(h5 + h4)              //字符串拼接
        h6 := strings.Split(h4, "\\") //字符串分隔
        fmt.Println(h6)
        fmt.Println(strings.Contains(h5, "是否包含"))  //是否包含
        fmt.Println(strings.HasSuffix(h5, "是否后缀")) //是否后缀
        fmt.Println(strings.HasPrefix(h5, "是否前缀")) //是否前缀
        h7 := "abcdcef"
        fmt.Println(strings.Index(h7, "c"))     //查看首出现索引
        fmt.Println(strings.LastIndex(h7, "c")) //查看最后出现索引
        fmt.Println(strings.Join(h6, "飞行员"))    //拼接slice中的字符串, 并且以xx字符连接
    
        // 7.1 字符串长度
        // byte(unit8类型)和rune(int32类型),都属于类型别名
        // 英文字符存的字符是byte字节, 中文或其他语言字符是rune类型
        // Go语言中为了处理非ASCII码类型的字节,定义了rune类型
        j := "He年"   //英文字符占一个字节,中文字符占3个字节
        jn := len(j) //得到的是byte字节的数量
        fmt.Println(jn)
    
        // 7.2 字符串遍历
        for _, j1 := range j { //从字符串中拿到具体的字符
            fmt.Printf("%c\n", j1) //%c字符显示
        }
    
        // 7.3 字符串修改
        j2 := []rune(j) // 把字符串强制转换成一个rune切片
        j2[0] = '沙'
        fmt.Println(string(j2)) //把切片强制转换为string类型
    
        // 7.4 类型转换
        j3 := 10
        var j4 float64
        j4 = float64(j3)
        fmt.Println(j4)
    
        // 8.1 if判断语句
        //if条件判断语句的特殊写法: 可以在if表达式前添加一个执行语句, 根据变量值进行判断
        if age := 18; age > 19 {
            fmt.Println("小王子的星球")
        } else {
            fmt.Println("面包树的家")
        }
    
        // 9.1 for循环基本用法
        for i := 0; i < 10; i++ {
            fmt.Println(i)
        }
        // 9.2 for循环变种1
        var i int
        for ; i < 5; i++ {
            fmt.Println(i)
        }
        // 9.3 for循环变种2
        ii2 := 5
        for ii2 < 10 {
            fmt.Println(ii2)
            ii2++
        }
        // 9.4 for无线循环
        for {
            ii2++
            if ii2 > 20 {
                fmt.Println("可以跳出循环了")
                break
            }
        }
        // 9.5 break和continue的区别:
        for i := 0; i < 10; i++ {
            if i == 5 {
                break //跳出循环,不再执行后续操作
            }
            fmt.Println(i)
        }
        fmt.Println("OK")
        for i := 0; i < 10; i++ {
            if i==5 {
                continue //跳过本次循环,不执行本次操作,后面循环继续
            }
            fmt.Println(i)
        }
        fmt.Println("over")
    
    }
    
    

    相关文章

      网友评论

          本文标题:sp1.常见类型与循环

          本文链接:https://www.haomeiwen.com/subject/uwqdgctx.html