zoukankan      html  css  js  c++  java
  • 【原创】go语言学习(三)字符串串、时间和日期类型

    目录

    1.字符串串原理理解析
    2. 时间类型
    3. 日期类型

    字符串串原理理解析

    1.字符串串底层就是⼀一个byte数组,所以可以和[]byte类型互相转换
    2.字符串串之中的字符是不不能修改的,那怎么修改呢
    3.字符串串是由byte字节组成,所以字符串串的⻓长度是byte字节的⻓长度
    4.rune类型⽤用来表示utf8字符,⼀一个rune字符由1个或多个byte组成

    练习
    练习1:写⼀一个程序,对英⽂文字符串串进⾏行行逆序。

    练习2:写⼀一个程序,对包含中⽂文的字符串串进⾏行行逆序。

    // 逆序字符输出:文中olleh
    func testReverseStringV2() {
    	// rune表示UTF8字符
    	var str = "hello中文"
    	// 英文可以用byte
    	// var r []byte = []byte(str)
    	var r []rune = []rune(str)
    
    	for i := 0; i < len(r)/2; i++ {
    		tmp := r[len(r)-i-1] - r[i]
    		r[i] = tmp
    	}
    	str = string(r)
    	fmt.Println(str)
    }


    练习3:写⼀一个程序,判断⼀一个字符串串是否是回⽂文。

    // 是否是回文
    func testHuiWen() {
    	// rune表示UTF8字符
    	var str = "hello中文"
    	// 英文可以用byte
    	// var r []byte = []byte(str)
    	var r []rune = []rune(str)
    
    	for i := 0; i < len(r)/2; i++ {
    		tmp := r[len(r)-i-1] - r[i]
    		r[i] = tmp
    	}
    	str2 := string(r)
    	if str2 == str {
    		fmt.Println(str, "is huiwen")
    	} else {
    		fmt.Println(str, "is  not huiwen")
    	}
    }
    

      

    时间和日期类型

    1. time包
    2. time.Time类型,⽤用来表示时间
    3. 获取当前时间, now := time.Now()
    4. time.Now().Day(),time.Now().Minute(),time.Now().Month(),time.Now().Year()
    5. 格式化,fmt.Printf(“%02d/%02d%02d %02d:%02d:%02d”, now.Year()…)

    6. 获取当前时间戳,time.Now().Unix()。
    7. 时间戳转Time类型。
    8. 定时器器的简单使⽤用

    9. time.Duration⽤用来表示纳秒
    10. 一些常量量:

    const (  
        Nanosecond  Duration = 1  
        Microsecond          = 1000 * Nanosecond  
        Millisecond          = 1000 * Microsecond  
        Second               = 1000 * Millisecond  
        Minute               = 60 * Second  
        Hour                 = 60 * Minute 
    ) 
    

      

    8. 格式化:

    now := time.Now() 
    fmt.Println(now.Format(“02/1/2006 15:04”)) 
    fmt.Println(now.Format(“2006/1/02 15:04”))
    fmt.Println(now.Format(“2006/1/02”))

      

    练习1:写⼀一个程序,获取当前时间,并格式化成 2017/06/15 08:05:00形式

    //练习1
    func testFormat1() {
    now := time.Now()
    year := now.Year()
    month := now.Month()
    day := now.Day()
    hour := now.Hour()
    minute := now.Minute()
    // 秒
    send := now.Second()
    //now.Format 模板格式化,指定2006年1月2日
    // timeStr := now.Format("2006/01/02 15:04:05")
    timeStr := fmt.Sprintf("%02d/%02d/%02d %02d:%02d:%02d ", year, month, day, hour, minute, send)
    fmt.Printf("time:%s ", timeStr)
    }

      

    练习2:写⼀一个程序,统计⼀一段代码的执⾏行行耗时,单位精确到微秒。

    // 程序执行耗时微妙
    func testCost() {
    	start := time.Now().UnixNano()
    	for i := 0; i < 10; i++ {
    		time.Sleep(time.Millisecond)
    	}
    	end := time.Now().UnixNano()
    	cost := (end - start) / 1000
    	// 微秒
    	fmt.Printf("code cost:%d us", cost)
    }
    

      

  • 相关阅读:
    scikit-image 库简介
    如何下载网易云音乐APP里的MV和短视频?
    CentOS上用Squid搭建HTTP代理小结
    超简单的晃咖、小咖秀视频去水印下载方法
    自媒体攻略合集,教你如何做一名能赚钱的自媒体人
    怎么下载映客的视频?映客小视频下载到本地的方法
    如何把手机app的视频下载到手机上?网页上的视频怎么下载?
    短视频如何制作?如何下载短视频?常用的短视频录制和剪辑App有哪些?
    JVM jinfo命令(Java Configuration Info) 用法小结
    iOS11有哪些新功能?旧iPhone是否真的变慢了
  • 原文地址:https://www.cnblogs.com/wangshuyang/p/11694918.html
Copyright © 2011-2022 走看看