GoLang中字串的一些使用總結
在專案當中接觸到最多的應該就是字串了,有比如,在寫API時收到前臺發來的請求,大部分我相信都是字串,我們接下來就針對字串在GoLang中的一些處理做個小小的總結。
文/謙益
一、字串的格式化輸出
package main
import "fmt"
func main() {
fmt.Println("Hello")
}
我相信這是所有人入門輸入的第一句程式碼,足夠簡單,我們深入一點。
package main
import "fmt"
func main() {
fmt.Printf("Hi, my name is %v","BoB")
}
當我們需要在輸出的字元裡面插入一些自己想加的內容,那就要用到格式化了,和其他的C語言啥的都類似,這裡我列一下這些動詞和功能的具體引數:
動詞 | 功能 |
---|---|
%v | 按照值的本來值輸出 |
%+v | 在%v基礎上,對結構體欄位名和1值進行展開 |
%#v | 輸出Go語言語法格式的值 |
%T | 輸出Go語言-語法格式的型別和值 |
%% | 輸出%本體 |
%b | 整型以二進位制方式顯示 |
%。 | 整型以八進位制方式顯示 |
%d | 整型以十進位制方式顯示 |
%x | 整型以十六進位制方式顯示 |
%X | 整型以十六進位制、字母大寫方式顯示 |
%U | Unicode字元 |
%f | 浮點數 |
%p | 指標,十六進位制方式顯示 |
有些我們不常用的,可以先不記住他,用到了再來查也可以。
二、字串的型別轉換
當我們收到客戶端發來的請求時,大部分資料都是需要我們二次處理才能使用的,比如把字串轉int
,轉int64
等接下來我們們看看Go裡面怎麼轉的。
AByString := "1"
BByInt := 2
//型別轉換成int
CByInt,err := strconv.Atoi(AByString)
if err != nil {
fmt.Errorf("型別轉換出錯 %v",err)
}
fmt.Println(BByInt + CByInt)
這是string
轉int
。
AByString := "1"
//字串轉int64
DByInt64, err := strconv.ParseInt(AByString, 10, 64)
//int64轉string
EByString := strconv.FormatInt(DByInt64, 10)
EByInt64, err := strconv.ParseInt(EByString, 10, 64)
fmt.Println(EByInt64 + DByInt64)
這裡用到了:
- string轉int64
- int64轉string
strconv
包裡面有很多API是用來轉換資料型別,這裡就不一一列舉了,我們常見的型別轉換裡面都已經包含了。
三、字串的加密解密
加密解密是專案裡面必不可少的,比如資料傳輸時,如果明文傳輸是一件非常可怕的事,我給大家介紹兩個常見的加密演算法:
Base64
首先是一個可逆的加密演算法 base64,Go語言中提供了加密模組,我們直接使用就好了。
import (
"fmt"
"encoding/base64"
)
func main() {
// 宣告一個字串,並轉換為byte陣列
input := []byte("hello world")
// base64編碼
encodeString := base64.StdEncoding.EncodeToString(input)
fmt.Println(encodeString)
// 對上面的編碼結果進行base64解碼
decodeBytes, err := base64.StdEncoding.DecodeString(encodeString)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(decodeBytes))
}
在資料加密解密這塊Go語言做得是比較不錯的。
MD5
MD5和BASE64差不多,直接就看範例吧:
import (
"fmt"
"crypto/md5"
)
func main() {
// 宣告一個字串,並轉換為byte陣列
input := []byte("hello world")
has := md5.Sum(input)
md5str1 := fmt.Sprintf("%x", has) //將[]byte轉成16進位制
fmt.Println(md5str1)
}
字串相關的內容大概就這麼多。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2768/viewspace-2815788/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Go 之基礎速學 (十二) golang 的一些小總結Golang
- javascript中字串常用操作總結JavaScript字串
- larabbs 使用的一些擴充總結
- 關於Mysql使用的一些總結MySql
- 總結下 javascript 中的一些小技巧JavaScript
- 使用 Golang 寫爬蟲經驗總結Golang爬蟲
- golang 中的四種型別轉換總結Golang型別
- 使用vue-element-admin的一些總結Vue
- golang omitempty 總結GolangMIT
- 使用sed 命令查詢和替換檔案中的字串的方法總結字串
- golang json字串轉結構體GolangJSON字串結構體
- 開發中的一些經驗總結
- Swift中Initialization的一些個人總結Swift
- 爬蟲學習中的一些總結爬蟲
- Golang中struct結構標籤(Tag)的使用GolangStruct
- 使用Golang時遇到的一些坑Golang
- PHP中Trait的使用總結PHPAI
- golang 面試總結Golang面試
- golang知識總結Golang
- Redux的一些總結Redux
- 總結常用的字串函式字串函式
- js字串方法總結JS字串
- C++:字串總結C++字串
- Peer Dependency 一些使用場景的歸納總結
- 關於golang的time包總結Golang
- golang的比較好的一些超連結Golang
- MybatisPlus 中的API 使用總結(CRUD)MyBatisAPI
- 正則的一些總結
- Flash安全的一些總結
- golang 常見疑惑總結Golang
- Python字串常用方法總結Python字串
- 字串合集應用總結字串
- shell字串處理總結字串
- golang 多協程的同步方法總結Golang
- Ajax技術的一些總結
- 學習 CodeWhisperer 的一些總結
- golang 在 runtime 中的一些騷東西Golang
- 使用七牛雲端儲存的一些經驗總結