目录

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\n", year, month, day, hour, minute, send)
fmt.Printf("time:%s\n", 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)
}

  

【原创】go语言学习(三)字符串串、时间和日期类型的更多相关文章

  1. [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. JavaScript 把字符串类型转换成日期类型

    今天在写习题时,遇到些小问题,在这里把答案分享给大家,希望能帮助到大家! 一.把字符串转换成日期类型 var str = "1997-3-12"; var d = new Date ...

  3. golang(3):strings和strconv使用 & 时间和日期类型 & 指针类型 & 流程控制 & 函数

    strings和strconv使用 . strings.HasPrefix(s string, prefix string) bool: // 判断字符串s是否以prefix开头 . . string ...

  4. R语言学习 第十一篇:日期和时间

    R语言的基础包中提供了三种基本类型用于处理日期和时间,Date用于处理日期,它不包括时间和时区信息:POSIXct/POSIXlt用于处理日期和时间,其中包括了日期.时间和时区信息.R内部在存储日期和 ...

  5. python语言学习8——字符串和编码

    Unicode编码 计算机只能处理数字,如果要处理文本,就必须把文本转化为数字才能处理 有许多编码标准,但是不同的编码标准有时候会混乱,所以Unicode应运而生 Unicode把所有语言统一到一套编 ...

  6. C语言学习笔记--字符串

    字符串是有序字符的集合,C 语言中没有字符串的概念,而是通过特殊的字符数组模拟字符串,是以'\0'结尾的字符数组. 1.字符数组与字符串 (1)在 C 语言中,字双引号引用的单个或多个字符是一种特殊的 ...

  7. php学习七:时间和日期

    在学习php中的时间和日期的时候,必须要了解什么是时间戳,那么什么是时间戳呢,请看一下的定义 时间戳:从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数 ...

  8. hibernate Java 时间和日期类型 Hibernate 制图

    基础知识: 于 Java 于, 型表示的时间和日期包含: java.util.Date 和 java.util.Calendar. 外, 在 JDBC API 中还提供了 3 个扩展了 java.ut ...

  9. java时间和日期类型

    在java中,代表时间和日期的类型包括:java.util.Date和java.util.Calendar,此外,在JDBC API中还提供了3个扩展类,java.UtilDate类的子类:java. ...

随机推荐

  1. ubuntu下使用eclipse调试jni无法获取环境变量,本地库(java.library.path,LD_LIBRARY_PATH)等问题的解决。

    首先要把本地库全部配置到LD_LIBRARY_PATH中. 然后一定要采用命令行方式启动eclipse(也可以写一个启动shell,通过桌面启动器打开这个shell),这样环境变量才会有效. 打开终端 ...

  2. java常用配置文件头部声明

    spring: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http: ...

  3. VS.NET(C#)--1.5_VS菜单功能

    VS菜单功能 文件菜单 1.新建 2.添加 编辑菜单 1.快速查找  ctrl+F 2.快速替换   ctrl+H 3.在文件中查找ctrl+shift+F 4.在文件中替换ctrl+shift+H ...

  4. windows + Eclipse 汉化

    https://www.eclipse.org/babel/downloads.php 下载Eclipse 对应版本 汉化包解压 复制文件夹里的内容到eclipse 文件夹下对应的文件里 重启ecli ...

  5. Lucid Dream

    Lucid Dream 作者:Lo Stigmergy链接:https://www.zhihu.com/question/21260829/answer/35733194 清醒状态下时意识和潜意识基本 ...

  6. navicate的使用及用Python操作数据额库

    Navicat使用 下载地址:<https://pan.baidu.com/s/1bpo5mqj> Navicat是基于mysql操作的,所以能否自主完成一些练习,就能够运用Navicat ...

  7. css中哪些属性会脱离文档流

    一共有三个属性会使元素脱离文档流: (1)浮动 (2)绝对定位 (3)固定定位 元素脱离文档流会导致父元素高度塌陷,要修复高度塌陷问题,可以将子元素与父元素放在同一个BFC中

  8. SMARTY的知识

    smarty的原理: <?php class Smarty { $ldelimiter = "{";//左分隔符 $rdelimiter = "}";// ...

  9. bootstrap 模态窗口 多重/多个弹窗滚动条补丁

    由于bootstrap的模态窗口默认不支持多次弹出, 在关闭的时候会有滚动条消失的问题. 经过观察和查看源码, 发现在开启和关闭的时候会在body上增加/减少一个"modal-open&qu ...

  10. javascript_04-类型转换

    类型转换 掌握三种类型的转换 转换成字符串类型 转换成数值类型 转换成布尔类型 转换成字符串 1.几乎每一个值都有 toString() 方法,除了 null 和 undefined. var age ...