Golang入门学习(四):常用的函数汇总

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入门学习(四):常用的函数汇总的更多相关文章
- SCARA——OpenGL入门学习四(颜色)
OpenGL入门学习[四] 本次学习的是颜色的选择.终于要走出黑白的世界了~~ OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式. 无论哪种颜色模式,计算机都必须为每一个像素保存一些数 ...
- Mysql中常用的函数汇总
Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回 ...
- 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 ...
- JavaScript快速入门(四)——JavaScript函数
函数声明 之前说的三种函数声明中(参见JavaScript快速入门(二)——JavaScript变量),使用Function构造函数的声明方法比较少见,我们暂时不提.function func() { ...
- R 常用清洗函数汇总
目录 1.which() 2.unique() 3.dplyr包 select() filter() arrange() group_by() mutate() transmutate() summa ...
- [PowerShell] 快速入门, 基本语法, 常用类型, 函数, .NET 互操作
PowerShell 快速入门 开始之前, 我们认定你已经有一定的编程基础, 熟悉 .NET 中的类型与对象. 此文章对于 .NET 开发者来说更简单哦! 在 PowerShell 中, 几乎一切都是 ...
- Golang入门学习(二):控制分支
文章目录 @[TOC] 1. 控制分支 1.1 if-else分支 1.2 switch分支 1.4 while 和do...while循环结构 1.5 多种循环结构 1.6 break 1.7 co ...
- web前端常用小函数汇总
//去掉html标签 function delHtmlTag(str) { var title = str.replace(/<[^>]+>/g, "");// ...
- Matlab入门学习(矩阵、函数、绘图的基本使用)
一.矩阵 1.定义和简单使用(一般的编程语言,数组下标都是从0开始的,但是MATLAB是从1开始的) >> a=[ ; ; ] a = >> b=[ ; ; ]; >&g ...
随机推荐
- python编写DDoS攻击脚本
python编写DDoS攻击脚本 一.什么是DDoS攻击 DDoS攻击就是分布式的拒绝服务攻击,DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式.单一的DoS攻击一般是采用一对一方式的, ...
- Centos8部署jdk、mysql8、tomcat,并部署项目到tomcat中
目录 Linux系统的学习与使用(Centos8) Linux系统的介绍 为什么要选择Linux作为服务器运行的操作系统 目录结构 使Linux系统能够联网(登录root用户) 常用命令 cd命令(用 ...
- 手写Pascal解释器(一)
目录 一.编写解释器的动机 二.part1 三.part2 四.part3 一.编写解释器的动机 学习了Vue之后,我发现对字符串的处理对于编写一个程序框架来说是非常重要的,就拿Vue来说,我们使用该 ...
- 这才是做了五年Android开发该有的样子!
程序员工作五年后一般怎样了? 五年程序员生涯对身体上的摧残就不说了,来讲讲一般会有怎样的状态吧! 优秀的一般是这样:有着明确的职业目标与规划,热爱技术,五年的工作沉淀,技术能力得到了飞速提升,每天依然 ...
- .NET Core/.NET5/.NET6 开源项目汇总13:模板引擎
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- Blazor+Dapr+K8s微服务之服务调用
1.1 Dapr环境配置 1.1.1 在开发机安装Docker Desktop并启用Kubernetes 安装过程略,安装好后效果如下:(左下角两个绿色指示Docker和 ...
- 【vulhub】Weblogic CVE-2017-10271漏洞复现&&流量分析
Weblogic CVE-2017-10271 漏洞复现&&流量分析 Weblogic CVE-2017-10271 XMLDecoder反序列化 1.Weblogic-XMLDeco ...
- Go的Channel发送和接收
先来看一道面试题: 对已经关闭的 chan 进行读写,会怎么样?为什么? 在上一篇学习 Go 协程的文章中,知道 go 关键字可以用来开启一个 goroutine 进行任务处理,但多个任务之间如果需要 ...
- 一个系列搞懂YARN(1)——Yarn架构
前言 几天前和大哥说起了Yarn,大哥问我,你知道Yarn里面怎么进行资源的动态分配回收的吗?我和诚实,说不知道,然后就有了这个系列博文.不同版本的hadoop版本对应的yarn文档会有差别,本文中选 ...
- NOIP 模拟 9 分组
题解 这道题我们发现可以根据 \(k=1\) 和 \(k=2\) 的情况分别讨论 \(k=1\) 时,我们发现要保证字典序,那么我们从后往前扫,扫的时候判断一下当前数是否会和上一段的冲突. 复杂度瓶颈 ...