zoukankan      html  css  js  c++  java
  • Go语言基本类型

    1、Go语言fmt包详解
       fmt.Println()  ###常用打印
       fmt.Print()
       fmt.Printf()  ###格式化
       fmt.Sprintf() ###字符串拼接
      a)普通占位符

         占位符          说明                                举例
          %v             以默认的方式打印变量的值                fmt.Printf("%v", site)
          %+v                在打印结构体时,会添加字段名          fmt.Printf("%+v", site)
          %#v                在打印结构体时,会添加字段名和包名     fmt.Printf("%#v", site)
          %T             打印变量的类型                          fmt.Printf("%T", site)
          %%             字面上的百分号,并非值的占位符            fmt.Printf("%%")
          %t             打印true或false                       fmt.Printf("%t", true)
          %s             输出字符串表示(string类型或[]byte)      fmt.Printf("%s", []byte("oldboy"))
          %d             表示为十进制                           fmt.Printf("%d", 0x12)
          %o             表示为八进制                          fmt.Printf("%d", 10)
          %x             十六进制表示,字母形式为小写 a-f        fmt.Printf("%x", 13)
          %p             十六进制表示,前缀 0x                  fmt.Printf("%p", &site)  ##指针

    2、Go语言字符串
    a)字符串定义
    1、双引号,用来创建可解析的字符串字面量
           str := "Go语言字符串
    不能跨行赋值"
             2、反引号,用来创建原生的字符串字面量 ,这些字符串可能由多行组成(不支持任何转义序列),
    原生的字符串字面量多用于书写多行消息、HTML以及正则表达式。
           str := `Go原生原格式字符串
                            可以跨行`
       b) 字符串拼接
    1、直接使用 "+" 运算符链接
           str := "hello" + "girl"
             2、使用 fmt.Sprintf() 拼接
           str := fmt.Sprintf("%s,%s", "hello", "girl")
             3、使用 strings.Join() 拼接
           str := strings.Join([]string{"hello", "girl"}, ",")
             4、使用 buffer.WriteString() 拼接
             var buffer bytes.Buffer
                   buffer.WriteString("hello")
                   buffer.WriteString(",")
                   buffer.WriteString("girl")
                   str := buffer.String()
          总结:
    1. 在已有字符串数组的场合,使用 strings.Join() 能有比较好的性能;
    2. 在一些性能要求较高的场合,尽量使用 buffer.WriteString() 以获得更好的性能;
    3. "+" 运算符在较少字符串连接的场景下性能最好,而且代码更简短清晰,可读性更好;
    4. 如果需要拼接的不仅仅是字符串,还有数字之类的其他需求的话,可以考虑 fmt.Sprintf()。

    3、string包详解
    1、计算字符串长度 len() (存在中文,必须先转为[]byte或[]rune)
          length := len([]rune(str))
          2、字符串切片
          str := str[0:5]
          3、判断给定字符串s中是否包含子串substr, 找到返回true, 找不到返回false
          strings.Contains("oldboy", "boy")
          4、在字符串s中查找子串所在的位置, 返回位置值, 找不到返回-1
          strings.Index("oldboy", "boy")
          5、统计给定子串sep的出现次数, sep为空时, 返回字符串的长度 + 1
          strings.Count("oldboy", "o")
          6、重复s字符串count次, 最后返回新生成的重复的字符串
          strings.Repeat("嘀嗒", 4)
          7、在s字符串中, 把old字符串替换为new字符串,n表示替换的次数,如果n<0会替换所有old子串。
          strings.Replace("luck luck luck", "k", "ky", 2)
          8、删除在s字符串的头部和尾部中由cutset指定的字符, 并返回删除后的字符串
          strings.Trim("   oldboy   ", " ")
          9、大小写转换
          strings.Title("It is never too late to learn.")     //转为标题
             strings.ToLower("It Is Never Too Late To Learn.")  //转为小写
             strings.ToUpper("It is never too late to learn.")  //转为大写
          10、字符串前缀后缀
          strings.HasPrefix("oldboy", "old")    //前缀判断
              strings.HasSuffix("oldboy", "boy")    //后缀判断
          11、字符串分割
          strings.Split("Linux,Python,Golang,Java", ",")

    4、数组
    1、一维数组定义
    1) 声明一个长度为5的整数数组
              var array [5]int
                2) 声明一个长度为5的整数数组并初始化
              var array [5]int = [5]int{1, 2, 3, 4, 5}
                3) 如果你把长度写成…,Go编译器将会根据你的元素来推导出长度
               array := [...]int{1, 2, 3, 4, 5}
                4) 声明一个长度为5的整数数组,为索引为1和3的位置指定元素初始化,剩余元素为该元素类型的默认值
               array := [5]int{1: 1, 3: 3}
          2、多维数组定义
    1) 声明一个二维数组
              var array [3][6]int
                2) 使用数组字面值声明并初始化
              array := [4][2]int{{10, 11}, {20, 21}, {30, 31}, {40, 41}}
                3) 指定外部数组索引位置初始化
              array := [4][2]int{1: {20, 21}, 3: {40, 41}}
                4) 同时指定内外部数组索引位置初始化
              array := [4][2]int{1: {20, 21}, 3: {40, 41}}
    注意:使用内置函数len()和cap()返回数组长度和数组容量,且其余操作和其他语言一直,通过索引增删改查

    5、类型转换 (strconv包实现了基本数据类型和其字符串表示的相互转换)
    1、字符串转字节
            var str string = "oldboy"
                result := []byte(str)
          2、32位整形转字节
            var x int32
                x = 100
                bytesBuffer := bytes.NewBuffer([]byte{})
                binary.Write(bytesBuffer, binary.BigEndian, x)
                result := bytesBuffer.Bytes()
        类型转换详细查阅:http://docscn.studygolang.com/pkg/strconv/
  • 相关阅读:
    Unity3d中的属性(Attributes)整理【转载】
    在Unity里面使MMD动起来吧【2】
    在Unity里面使MMD动起来吧【1】
    Unity代码混淆方案
    萌舞Android版Unity笔记整理
    c#实现16进制和字符串之间转换的代码
    关于sqlite3使用top的一些规则总结
    【转】UniSky入门资料
    【转】.NET 产品版权保护方案 (.NET源码加密保护)
    百度云管家下载出错解决思路记录
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10384898.html
Copyright © 2011-2022 走看看