2.4 常用的内置函数

2.4.1 字符串常用内置函数

  • https://golang.org/pkg/strings/

  • https://golang.org/pkg/strconv/

  • 统计字符串长度的函数:len(str)

  • 字符串遍历,同时处理有中文的问题:r:=[]rune(str)

  • 字符串转整数:strconv(str), strconv.ParseInt()

    func strconvDemo() {
    v := "10"
    if s, err := strconv.Atoi(v); err == nil {
    fmt.Printf("%T, %v", s, s)
    }
    }
  • 整数转字符串:strconv(str)

    func strItoa(){
    i := 10
    s := strconv.Itoa(i)
    fmt.Printf("%T, %v\n", s, s)
    }
  • 字符串转成byte切片:bytes := []byte("asdfgh"))

  • byte切片转换成字符串: str4 := string([]byte{67, 68, 69, 70, 72})

  • 10进制数转换为其他进制数(转换后为字符串类型): str = strconv.FromatInt(123, 2)

    func ten2others(){
    s10 := strconv.FormatInt(v2, 10)
    fmt.Printf("%T, %v\n", s10, s10) s16 := strconv.FormatInt(v2, 16)
    fmt.Printf("%T, %v\n", s16, s16)
    }
  • 查找字符串中是否包含指定字符串: strings.Contains("seafood","food")

  • 统计字符串中子字符串的个数: strings.Count("aaaaaaa","a")

  • 忽略大小写的字符串比较函数: strings.EqualFold("Chinese","chinese")

  • 查找子字符串第一次出现的位置:strings.Index("stringsGolang","lang")

  • 查找子字符串最后一次出现的位置:strings.LastIndex("stringsGolang","lang")

  • 替换指定字符串: strings.Replace("Go Go Go", "Go", "Golang", 1)

  • 按指定字符分割字符串: strings.Split("Hello 北京 成都 上海 深圳", " ")

  • 字符串大小写转换: strings.ToLower、strings.ToUpper

  • 去除字符串左右两端的指定字符(无法去除字符串内部的字符):strings.Trim(" aaaaaaaaaC__", " _")

  • 判断一个字符串是否以指定字符串开头: func HasPrefix(s, prefix string) bool

  • 判断一个字符串是否以指定字符串结尾:func HasSuffix(s, suffix string) bool

2.4.2 常用的时间和日期相关函数

  • https://golang.org/pkg/time/

  • 时间、日期相关函数需要导入time包

  • 获取当前时间:

    func getTime(){
    //1. 获取当前时间
    now := time.Now()
    fmt.Printf("Now = %v Type=%T", now, now)
    //Now = 2021-02-23 16:14:42.0211031 +0800 CST m=+0.000997301 Type=time.Time
    }
  • 获取当前时间的详细信息:

    func detail(){
    //2.获取年月日时分秒
    now := time.Now()
    fmt.Printf("年=%v\n", now.Year())
    fmt.Printf("月=%v\n", now.Month())
    fmt.Printf("日=%v\n", int(now.Day()))
    fmt.Printf("时=%v\n", now.Hour())
    fmt.Printf("分=%v\n", now.Minute())
    fmt.Printf("秒=%v\n", now.Second())
    }
  • 格式化时间格式:(format的字符串数值是固定的,必须是2006/01/02 15:04:05)

    func timeFormat(){
    now := time.Now()
    fmt.Println(now.Format("2006/01/02 15:04:05"))
    fmt.Println(now.Format("2006-01-02"))
    fmt.Println(now.Format("15:04:05"))
    }
  • 时间常量:

    const (
    Nanosecond Duration = 1
    Microsecond = 1000 * Nanosecond
    Millisecond = 1000 * Microsecond
    Second = 1000 * Millisecond
    Minute = 60 * Second
    Hour = 60 * Minute
    )
    const (
    ANSIC = "Mon Jan _2 15:04:05 2006"
    UnixDate = "Mon Jan _2 15:04:05 MST 2006"
    RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
    RFC822 = "02 Jan 06 15:04 MST"
    RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
    RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
    RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
    RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
    RFC3339 = "2006-01-02T15:04:05Z07:00"
    RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
    Kitchen = "3:04PM"
    // Handy time stamps.
    Stamp = "Jan _2 15:04:05"
    StampMilli = "Jan _2 15:04:05.000"
    StampMicro = "Jan _2 15:04:05.000000"
    StampNano = "Jan _2 15:04:05.000000000"
    )
  • 结合sleep来使用时间常量

    func sleepDemo(){
    for {
    fmt.Println(time.Now().Second())
    time.Sleep(time.Millisecond * 100)
    }
    }
  • 获取当前unix时间戳

    func getUnixTime(){
    fmt.Println(time.Now().Unix())
    fmt.Println(time.Now().UnixNano())
    }

2.4.3 内置函数

  • https://golang.org/pkg/builtin/ /内建函数/

  • len(): 获取字符串长度的函数:

  • new(): 用来分配内存,主要用来分配值类型,如int, float64,

  • make(): 用来分配内存,主要分配引用类型的内存, 如切片,channel, map等

func main() {
num1 := 100
fmt.Printf("num1的类型为:%T, num1的值为:%d, num1的地址为:%p\n", num1, num1, &num1) num2 := new(int) /*new的返回值是一个指针*/
fmt.Printf("num2的类型为:%T, num2的值为:%d, num2的地址为:%p\n", num2, *num2, &num2)
}

Golang入门学习(四):常用的函数汇总的更多相关文章

  1. SCARA——OpenGL入门学习四(颜色)

    OpenGL入门学习[四] 本次学习的是颜色的选择.终于要走出黑白的世界了~~ OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式. 无论哪种颜色模式,计算机都必须为每一个像素保存一些数 ...

  2. Mysql中常用的函数汇总

    Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回 ...

  3. Golang入门学习(三):函数

    文章目录 2.3 函数 2.3.1 基本语法 2.3.2 入门demo: 2.3.3 函数递归: 2.3.4 函数注意事项 2.3.5 init函数 2.3.6 匿名函数 2.3.7 闭包 2.3.8 ...

  4. JavaScript快速入门(四)——JavaScript函数

    函数声明 之前说的三种函数声明中(参见JavaScript快速入门(二)——JavaScript变量),使用Function构造函数的声明方法比较少见,我们暂时不提.function func() { ...

  5. R 常用清洗函数汇总

    目录 1.which() 2.unique() 3.dplyr包 select() filter() arrange() group_by() mutate() transmutate() summa ...

  6. [PowerShell] 快速入门, 基本语法, 常用类型, 函数, .NET 互操作

    PowerShell 快速入门 开始之前, 我们认定你已经有一定的编程基础, 熟悉 .NET 中的类型与对象. 此文章对于 .NET 开发者来说更简单哦! 在 PowerShell 中, 几乎一切都是 ...

  7. Golang入门学习(二):控制分支

    文章目录 @[TOC] 1. 控制分支 1.1 if-else分支 1.2 switch分支 1.4 while 和do...while循环结构 1.5 多种循环结构 1.6 break 1.7 co ...

  8. web前端常用小函数汇总

    //去掉html标签 function delHtmlTag(str) { var title = str.replace(/<[^>]+>/g, "");// ...

  9. Matlab入门学习(矩阵、函数、绘图的基本使用)

    一.矩阵 1.定义和简单使用(一般的编程语言,数组下标都是从0开始的,但是MATLAB是从1开始的) >> a=[ ; ; ] a = >> b=[ ; ; ]; >&g ...

随机推荐

  1. Android 帧动画使用

    帧动画 使用一系列不同的图片,然后像一卷胶卷一样按顺序播放,这是一种传统的动画,也可称为帧动画.也可以比喻为像一卷胶卷一样按顺序播放. 播放起来,有点像在看gif图. 本文介绍使用AnimationD ...

  2. 修改Eureka的metadata脚本

    最近研究了一下Spring Cloud的灰度发布, 发现方法真是多. 这里先提供一个修改Eureka注册中心里的instance实例的metadata的脚本, 可以方便地用来测试效果. 使用举例: s ...

  3. 大数据开发-Go-数组,切片

    new()和make的区别 二者看起来没什么区别,但是他们的行为不同,分别适用于不同的类型 new (T) 为每个新的类型 T 分配一片内存,初始化为 0 并且返回类型为 * T 的内存地址:这种方法 ...

  4. Java8 Lambda表达式(一)

    目录 一.应用场景引入 优化一:使用策略模式 优化二:使用匿名内部类 优化三:使用Lambda表达式 优化四:使用Stream API 二.Lambda运算符和对应语法 语法格式 Lambda表达式需 ...

  5. Java基础——JavaDoc生成文档

    JavaDoc生成文档  package Top1; ​ /**  * @author lwt  * @version 1.0  * @since 1.8  *  */ ​ public class ...

  6. sqli-labs lesson 54-65

    less 54 需要从数据库的CHALLENGES表中取出key值输入,输入对了才算通过,但是只能做10次尝试. 这里id被单引号包裹,注意闭合单引号即可,剩下的就可以参照less 1获取表中信息即可 ...

  7. miniFTP项目实战六

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

  8. Linux下库的制作(静态库与共享库)

    库中实际上就是已编译好的函数代码,可以被程序直接调用. Linux下的库一般的位置在/lib或者/usr/lib中 静态库 静态库是复制拷贝到调用函数中的,函数运行的时候不再需要静态库,因为静态库是在 ...

  9. 对象池在 .NET (Core)中的应用[1]: 编程体验

    借助于有效的自动化垃圾回收机制,.NET让开发人员不在关心对象的生命周期,但实际上很多性能问题都来源于GC.并不说.NET的GC有什么问题,而是对象生命周期的跟踪和管理本身是需要成本的,不论交给应用还 ...

  10. 计算文件的MD5值和sha256值

    1.计算文件的MD5值. 1)linux系统计算 MD5值:md5sum+文件名 sha256值:sha256su+文件名 2)windows系统计算 MD5值:利用Notepad++工具计算 sha ...