zoukankan      html  css  js  c++  java
  • GO入门学习笔记

    输出

    fmt.Printf Print Println

    格式化标识符 含义
    %d 十进制整数
    %e 科学计数法e表示或复数
    %f 浮点数
    %o 八进制
    %x 十六进制
    %s 字符串
    %t bool类型

    下面这一行调用了 fmt 包中的 Println 函数,可以将字符串输出到控制台,并在最后自动增加换行字符 :

    fmt.Println("hello, world")
    使用 fmt.Print("hello, world ") 可以得到相同的结果。

    Print 和 Println 这两个函数也支持使用变量,如:fmt.Println(arr)。如果没有特别指定,它们会以默认的打印格式将变量 arr 输出到控制台。

    字符串

    len(s)获取字符串长度

    strings包

    strings.HasPrefix(str,"Th")
    strings.HasSuffix(str,"love")
    

    检查字符串str是否以Th开头,是否以love结尾,均返回一个bool类型值

    strings.Contains(str,substr)
    

    检查字符串substr是否为str的子串(连续)

    strings.Index(s,str)
    strings.LastIndex(s,str)
    

    返回一个int类型值:
    str在s中的索引(str第一个字符的索引)
    str在s中最后出现位置的索引(str第一个字符的索引)
    -1表示s中不含str

    strings.Count(s,str)
    

    返回一个int类型值:str在s中出现的非重叠次数

    strings.Repeat(s,n)
    

    返回一个字符串:n个s相接

    strings.ToLower(s)
    strings.ToUpper(s)
    

    返回一个字符串:s全小/大写、

    strings.TrimSpace(s)
    strings.Trim(s, str)
    

    剔除字符串开头和结尾的空白符号
    剔除指定字符 注意:str中所含字符都会在开头结尾被去掉

    strconv包

    该包包含了一些变量用于获取程序运行的操作系统平台下 int 类型所占的位数,如:strconv.IntSize
    任何类型 T 转换为字符串总是成功的。
    针对从数字类型转换到字符串,Go 提供了以下函数:

    • strconv.Itoa(i int) string 返回数字 i 所表示的字符串类型的十进制数。
    • strconv.FormatFloat(f float64, fmt byte, prec int, bitSize int) string 将 64 位浮点型的数字转换为字符串,其中 fmt 表示格式(其值可以是 'b''e''f''g'),prec 表示精度,bitSize 则使用 32 表示 float32,用 64 表示 float64。

    针对从字符串类型转换为数字类型,Go 提供了以下函数:

    • strconv.Atoi(s string) (i int, err error) 将字符串转换为 int 型。
    • strconv.ParseFloat(s string, bitSize int) (f float64, err error) 将字符串转换为 float64 型。

    利用多返回值的特性,这些函数会返回 2 个值,第 1 个是转换后的结果(如果转换成功),第 2 个是可能出现的错误,因此,我们一般使用以下形式来进行从字符串到其它类型的转换:

    val, err = strconv.Atoi(s)
    

    if err!=nil则说明出错

    switch

    左大括号必须同行
    Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码,fallthrough不会判断下一条case的expr结果是否为true。
    可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:case val1, val2, val3

    if-else

    if condition1 {
    // do something
    } else if condition2 {
    // do something else
    } else {
    // catch-all or default
    }
    

    注意同行问题
    if和switch后都可以接一个初始化语句 注意分号!!!

    switch result := calculate(); {
        case result < 0:
            ...
        case result > 0:
            ...
        default:
            // 0
    }
    
    switch a, b := x[i], y[j]; {
        case a < b: t = -1
        case a == b: t = 0
        case a > b: t = 1
    }
    
    if value := process(data); value > max {
        ...
    }
    
    if val := 10; val > max {
        // do something
    }
    

    append 函数常见操作

    我们在第 7.5 节提到的 append 非常有用,它能够用于各种方面的操作:

    1. 将切片 b 的元素追加到切片 a 之后:a = append(a, b...)

    2. 复制切片 a 的元素到新的切片 b 上:

      b = make([]T, len(a))
      copy(b, a)
      
    3. 删除位于索引 i 的元素:a = append(a[:i], a[i+1:]...)

    4. 切除切片 a 中从索引 i 至 j 位置的元素:a = append(a[:i], a[j:]...)

    5. 为切片 a 扩展 j 个元素长度:a = append(a, make([]T, j)...)

    6. 在索引 i 的位置插入元素 x:a = append(a[:i], append([]T{x}, a[i:]...)...)

    7. 在索引 i 的位置插入长度为 j 的新切片:a = append(a[:i], append(make([]T, j), a[i:]...)...)

    8. 在索引 i 的位置插入切片 b 的所有元素:a = append(a[:i], append(b, a[i:]...)...)

    9. 取出位于切片 a 最末尾的元素 x:x, a = a[len(a)-1], a[:len(a)-1]

    10. 将元素 x 追加到切片 a:a = append(a, x)

  • 相关阅读:
    k8s官网 基础知识入门教程
    Mac安装minikube
    docker下创建crontab定时任务失败
    docker save提示no space left on device错误
    cx_Oracle读写clob
    Ossec添加Agent端流程总结
    ossec变更alert等级及配置邮件预警
    linux安全配置检查脚本_v0.5
    linux命令返回值的妙用
    Shell脚本判断内容为None的方式
  • 原文地址:https://www.cnblogs.com/lsgjcya/p/15268265.html
Copyright © 2011-2022 走看看