教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Go 语言编程实例(七)

Go 语言编程实例(七)

发布时间:2022-02-06   编辑:jiaochengji.com
教程集为您提供Go 语言编程实例(七)等资源,欢迎您收藏本站,我们将为您提供最新的Go 语言编程实例(七)资源

本节主要分享:字符串数字解析、URL解析、SHA1HASH、BASE64

<h4>Go 字符串数字解析</h4>

从字符串中解析出数字,许多场景都需要这么做。Golang 内置的 strconv 包中提供了相关的函数可供使用。

<pre><code class="lang-go hljs">package main import ( "strconv" "fmt" ) func main(){ //后面的64是 64bits 的意思 f,_ := strconv.ParseFloat("1.456",64) fmt.Printf("%T %f\n",f,f) //0 表示使用进制解析,修改为8或者16就按照8进制,16进制解析 // 64表示结果必须符合 64bit(只能在INT64范围内) i,_ := strconv.ParseInt("123",0,64) fmt.Printf("%T %d\n",i,i) //ParseInt 可以识别十六进制的数字 d,_:=strconv.ParseInt("0x1c8",0,64) fmt.Printf("%T %d\n",d,d) u,_:=strconv.ParseUint("789",0,64) fmt.Printf("%T %d\n",u,u) //atoi 基本的十进制解析 k,_:=strconv.Atoi("135") fmt.Printf("%T %d\n",k,k) //错误 _,e:= strconv.Atoi("test") fmt.Println(e) } </code></code></pre> <h4>Go URL解析实例</h4>

URL提供了一种统一的方法来定位资源。以下是在Go中解析网址的方法,解析示例URL,包括方案,身份验证信息,主机,端口,路径,查询参数和查询片段。

<pre><code class="lang-go hljs">package main import ( "net/url" "fmt" "net" ) func main(){ //示例网址 s := "postgres://user:pass@host.com:1314/path?k=v#f" //解析网址,确保无错 u,err := url.Parse(s) if err != nil{ panic(err) } //访问 scheme fmt.Println(u.Scheme) //User 包含了所有验证信息 用户名和密码都可以单独来。 fmt.Println(u.User) fmt.Println(u.User.Username()) p,_:=u.User.Password() fmt.Println(p) //Host 包含了 hostname 和 port 可以使用 SplitHostPort解析他们 fmt.Println(u.Host) host ,port ,_:=net.SplitHostPort(u.Host) fmt.Println(host) fmt.Println(port) //提取路径和片段 fmt.Println(u.Path) fmt.Println(u.Fragment) //要使用K=V格式的字符串获取查询参数,需要使用RawQuery。也可以解析到map中。 //解析查询参数映射是从字符串到字符串的片段。因此索引为0 fmt.Println(u.RawQuery) m,_:= url.ParseQuery(u.RawQuery) fmt.Println(m) fmt.Println(m["k"][0]) } </code></code></pre> <h4>Go SHA1hash实例</h4>

SHA1散列经常用于计算二进制或文本块的短标识。例如,git版本控制系统广泛使用 SHA1s 来标识版本化的文件和目录。以下示例Go计算SHA1HASH。

<pre><code class="lang-go hljs">package main import ( "crypto/sha1" "fmt" ) func main(){ s := "only test you" //new hash h := sha1.New() h.Write([]byte(s)) //计算最终散列值,后面nil可以附件到现有的字节片段 bs := h.Sum(nil) fmt.Println(s) fmt.Printf("%x\n",bs) } </code></code></pre> <h4>Go Base64编码实例</h4>

Go 提供对 base64 编码解码的内置支持。导入带有 b64 名称的 encoding/base64 软件包,而不是默认的 base64 。它会节省我们一些空间。Go支持标准和URL兼容的 base64,以下是使用标准编码器进行编码的方法。

<pre><code class="lang-go hljs">package main import ( "encoding/base64" "fmt" ) func main(){ data := "abc123!?$*&()'-=@~" sEnc := base64.StdEncoding.EncodeToString([]byte(data)) fmt.Println(sEnc) sDec,_:=base64.StdEncoding.DecodeString(sEnc) fmt.Println(string(sDec)) uEnc := base64.URLEncoding.EncodeToString([]byte(data)) fmt.Println(uEnc) uDec,_:= base64.URLEncoding.DecodeString(uEnc) fmt.Println(string(uDec)) } </code></code></pre>

如需进一步讨论可以加群:295023494(嵌入式)


到此这篇关于“Go 语言编程实例(七)”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
想系统学习GO语言(Golang
Go语言发展历史、核心、特性及学习路线
go html提取纯文本_Go 语言高性能编程
Go 语言十年而立,Go2 蓄势待发
[GO语言基础] 一.为什么我要学习Golang以及GO语言入门普及
go语言和python哪个难
【Go语言入门系列】(八)Go语言是不是面向对象语言?
Go 语言编程实例(七)
go run main.go 参数_Go语言入门:Hello world
Go 语言进阶教程

[关闭]
~ ~