page contents

golang常用操作包有哪些?

本文主要讲解golang常用包,有需要的朋友可以参考一下:

attachments-2021-08-wmSQ3wbE6109e85437086.jpg

本文主要讲解golang常用包,有需要的朋友可以参考一下:

1、fmt格式化输出等

Println   输出
Printf    格式化输出<br>
Scanln  获取参数(传参,类似python的input)
如:
var name string
fmt.Scanln(&name)
fmt.Println(name) //结果就是输入的值
 
Scanf 接受参数(也是类似python的input作用)
例子:
package main
 
import "fmt"
 
func main(){
    var name string
    fmt.Println("name:")
    fmt.Scanf("%s",&name)
    fmt.Println(name)
 
}
结果:
输入值
输入值
 
通用:
%v    值的默认格式表示
%+v    类似%v,但输出结构体时会添加字段名
%#v    值的Go语法表示
%T    值的类型的Go语法表示
%%    百分号
布尔值:
%t    true或false
整数:
%b    表示为二进制
%c    该值对应的unicode码值
%d    表示为十进制
%o    表示为八进制
%q    该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示
%x    表示为十六进制,使用a-f
%X    表示为十六进制,使用A-F
%U    表示为Unicode格式:U+1234,等价于"U+%04X"
浮点数与复数:
%b    无小数部分、二进制指数的科学计数法,如-123456p-78;参见strconv.FormatFloat
%e    科学计数法,如-1234.456e+78
%E    科学计数法,如-1234.456E+78
%f    有小数部分但无指数部分,如123.456
%F    等价于%f
%g    根据实际情况采用%e或%f格式(以获得更简洁、准确的输出)
%G    根据实际情况采用%E或%F格式(以获得更简洁、准确的输出)
字符串和[]byte:
%s    直接输出字符串或者[]byte
%q    该值对应的双引号括起来的go语法字符串字面值,必要时会采用安全的转义表示
%x    每个字节用两字符十六进制数表示(使用a-f)
%X    每个字节用两字符十六进制数表示(使用A-F)
指针:
%p    表示为十六进制,并加上前导的0x  

2、strings 字符串模块

1、Index  输出第一个字符(从左到右)的序号 如:strings.Index("suoning","n") 结果:3
2、LastIndex  输出最后一个(和上面相反)  如:strings.LastIndex("suoning","n") 结果:5
3、Replace         替换 大于0的数表示替换几个,0不替换,小于0替换所有 如:strings.Replace("suoning","n","#",-1 ) 结果:suo#i#g
4、HasPrefix      类似python的startswith,判断以什么开头,返回true和false ,如:strings.HasPrefix("suoning","suo") 结果:true
5、HasSuffix     判断以什么结尾,类似python的endswith 如:strings.HasSuffix("suoning","ning") 结果:true
6、Contains     判断字符串s是否包含子串s1 如:strings.Contains("suoning","suoni")  结果:true
7、Count      出现的次数(计数) 如:strings.Count("nnnnnn","n")  结果:6
8、Repeat     字符串*n 如:strings.Repeat("n", 6)  结果: nnnnnn
9、ToLower    所有字母小写 如:strings.ToLower("SuoNing") 结果:suoning
10、ToUpper    所有字母大写 如:strings.ToUpper("suoning")  结果:SUONING
11、TrimSpace  去掉前后端的所有空格 如:strings.TrimSpace("  \nsuoning\n  ")) 结果:nsuoning
12、Trim   将前后端所有符合条件的字符串去掉 如:strings.Trim("!!suoning!!","!")    结果:su!oning
13、TrimLeft 所有前端符合条件的字符串去掉 如:strings.TrimLeft("!suoning!","!") 结果:su!oning!
14、TrimRight 所有符合后端的字符串去掉 如:strings.TrimRight("!suoning!","!") 结果:!su!oning
15、Fields   按照空格分割的多个字符串 如:strings.Fields(" suo ning ") 结果:[suo ning]
16、Split 分割   如:strings.Split(",suo,ning,",",") 结果:[ suo ning ]
17、Join  拼接  如:strings.Join([]string{"abcd","ddd"}," ") 结果:abcd ddd

3、time 时间

1、Now 当前时间 如:time.Now() 结果:2019-03-04 15:33:25.044013971 +0800 CST m=+0.000231204
2、Unix 时间戳  如:time.Now().Unix() 结果:1551684901
3、Stamp  时间(没有年月日,只精确到s) 如:time.Stamp 结果:Jan _2 15:04:05
4、Date  指定时间  如:time.Date(2008, time.November, 11, 23, 0, 0, 0, time.UTC) 结果:2008-11-11 23:00:00 +0000 UTC
5、Format 格式输出时间 如:time.Now().Format("2006-1-02 15:04:05" )//必须使用这个时间才行2006-1-02 15:04:05  结果:2019-3-04 15:48:01
6、ParseDuration   添加或减少时间 例如:t,_ := time.ParseDuration("-10m")//小时为-10h ,天为
   Println(time.Now().Add(t))   结果: 2019-03-04 15:55:21.436413622 +0800 CST m=-599.999598120
7、Sleep   睡眠时间, time.Second为秒 如:time.Sleep(time.Second*10) 睡眠10秒

时间的常量

Microsecond   微秒

Millisecond   毫秒

Second      秒

Minute    分钟

Hour      小时

4、math/rand 实现了伪随机数生成器

例子:

package main
import (
    "math/rand"
    "fmt"
    "time"
)
 
func init() {
    rand.Seed(time.Now().UnixNano())//使用给定的seed来初始化生成器到一个确定的状态。
}
 
func main() {
    fmt.Println(rand.Int())    //9153536921449289609(返回一个非负的伪随机int值)
    fmt.Println(rand.Int31())  //2037735069(返回一个int32类型的非负的31位伪随机数)
    fmt.Println(rand.Int63())  //1132646811815532030(返回一个int64类型的非负的63位伪随机数)
    fmt.Println(rand.Intn(100))//95(取值范围在[0,n)的伪随机int值,n<=0会panic)
    fmt.Println(rand.Float32())//0.09178123(取值范围在[0.0, 1.0)的伪随机float32值)
    fmt.Println(rand.Perm(5))  //[0 4 1 2 3](有n个元素的,[0,n)范围内整数的伪随机排列的切片)
}
结果:
8550661205998522408
1835614409
8970669406830364302
79
0.19600172
[1 3 0 2 4]

五、os系统模块

1、Hostname   主机名 如:os.Hostname() 结果:localhost.localdomain <nil>
2、Getpagesize 返回底层的系统内存页的尺寸  如:os.Getpagesize() 结果:4096
3、Environ  查看环境变量 如:os.Environ()
4、Getenv  获取环境变量的值 如:os.Getenv("SHELL") 结果:/bin/bash
5、Setenv 设置环境变量  如:os.Setenv("a","b")//设置环境变量a值为b
6、Clearenv  删除所有环境变量  如:os.Clearenv()
7、Exit  退出程序,并返回给的状态码   如:os.Exit(2)  结果:exit status 2
8、Getuid 调用者的用户ID  如:os.Getuid()//使用的root 结果:0
9、Geteuid 调用者的有效用户ID 如:os.Geteuid() 结果:0
10、Getgid 调用者的组ID  如:os.Getgid() 结果:0
11、Getegid 调用者的有效组ID  如:os.Getegid() 结果:0
12、Getgroups 调用者所属的所有用户组的组ID 如:os.Getgroups() 结果:[0] <nil>
13、Getpid 调用者所在进程的进程ID 如:os.Getpid() 结果:116742
14、Getppid 调用者所在进程的父进程的进程ID 如:os.Getppid() 结果:116725
15、Getwd   当前所在路径(类似shell的pwd) 如:os.Getwd() 结果:/data/go <nil>
16、Chdir 更改当前所在目录(类似shell的cd) 如:os.Chdir("/tmp/"//切换到/tmp目录下
17、Mkdir  创建目录(shell的mkdir一样) 如:os.Mkdir("/tmp/test")
18、MkdirAll  递归创建目录(shell的mkdir -p) 如:os.MkdirAll("/tmp/test1/test2/test3")
19、Rename  更改文件或目录的名字 如:os.Rename("/tmp/test1","/tmp/test2")
20、Remove  删除文件或目录  如:os.Remove("/tmp/test2/test2"
21、RemoveAll 递归删除 如:os.RemoveAll("/tmp/test1/")
22、Create  创建文件,存在会清空  如:os.Create("/tmp/test")
23、Open  打开文件 如:os.Open("/tmp/test")

六、flag来解析命令行参数
七、encoding/json 用于处理json数据
1、json的序列化

flag包,可以方便的解析命令行参数,而且参数顺序可以随意

json 序列化是指,将有 key-value 结构的数据类型(比如结构体、map、切片)序列化成 json 字符串的操作

2、反序列化

反序列化是指,将 json 字符串反序列化成对应的数据类型(比如结构体、map、切片)的操作

1、 在反序列化一个json 字符串时,要确保反序列化后的数据类型和原来序列化前的数据类型一致。 
2、如果 json 字符串是通过程序获取到的,则不需要再对 “ 转义处

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

程序员编程交流QQ群:805358732

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-CWGWE4gr62ad6da3ba27f.jpeg

  • 发表于 2021-08-04 09:08
  • 阅读 ( 445 )
  • 分类:Golang

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章