Go語言程式:將雜湊集合轉換為字串


Go語言擁有json包,用於將雜湊集合轉換為字串。雜湊對映屬於雜湊集合,它以鍵值對的形式儲存資料,而字串是由字元組成的序列,它是不可變的。在本文中,我們將使用兩個例子來演示如何將雜湊集合轉換為字串。在第一個例子中,我們將使用Json包將對映轉換為編碼的位元組陣列,而在第二個例子中,我們將結合使用sort包和迴圈。

語法

json.Marshal()

此函式屬於JSON包,它將提供的值轉換為JSON編碼的位元組陣列。

func make ([] type, size, capacity)

Go語言中的make函式用於建立陣列/對映,它接受要建立的變數型別、大小和容量作為引數。

func len(v Type) int

len()函式用於獲取任何引數的長度。它接受一個引數作為要查詢長度的資料型別變數,並返回一個整數,表示該變數的長度。

方法一:使用json包

在這個例子中,我們將建立一個雜湊對映,Go語言的json包將使用它將其轉換為編碼的位元組陣列,然後使用string函式將其轉換為字串。讓我們來看一下程式碼和演算法,瞭解執行過程。

演算法

  • 匯入fmt包和encoding/json包以滿足程式的要求。

  • 建立一個main函式,並在函式內部建立一個名為hashcollection的雜湊對映,其中鍵和值都是字串型別。

  • 然後,使用json包中的Marshal函式將此對映轉換為JSON編碼的位元組陣列。

  • 如果在編碼對映時遇到任何錯誤,則列印錯誤。

  • 然後,使用string函式將位元組陣列轉換為字串。

  • 列印轉換為字串後的雜湊集合。

  • 使用fmt包中的Println函式執行列印語句。

示例

在下面的例子中,我們將使用json包將雜湊集合轉換為字串。

//Golang program to convert the hash collection into string
package main
import (
   "encoding/json"
   "fmt"
)

//create a main function
func main() {
   hashCollection := map[string]string{ //create hashmap using map literal
      "item1": "value1",
      "item2": "value2",
      "item3": "value3",
   }

   hashCollectionJson, err := json.Marshal(hashCollection)
   if err != nil {
      panic(err)  //print if any error encountered
   }

   hash_string := string(hashCollectionJson) //convert the byte array to string
   fmt.Println("The hash collection after its converted to string:")
   fmt.Println(hash_string) //print the hash string
}

輸出

The hash collection after its converted to string:
{"item1":"value1","item2":"value2","item3":"value3"}

方法二:使用Sort包

在這個例子中,我們將建立一個雜湊對映和一個切片,然後迭代它們以獲取字串中的鍵值對。整個字串將列印到控制檯。讓我們透過程式碼和演算法來看一下它是如何實現的。

演算法

  • 匯入fmt包和sort包以滿足程式的要求。

  • 在main函式中使用map字面量建立一個雜湊對映,鍵和值都是字串型別。

  • 使用make內建函式建立一個名為keys的切片,其長度與雜湊對映相同。

  • 將i變數初始化為0,並迭代雜湊對映直到其範圍結束。

  • 在每次迭代中,將雜湊對映的鍵新增到keys切片中,並在每次迭代中遞增索引變數。

  • 然後,使用sort包的Strings方法對鍵進行排序。

  • 在此步驟中,建立一個名為hashmap_string的變數,透過迭代keys切片將鍵值對新增到此字串中。

  • 使用Println函式列印控制檯上的字串,其中ln表示換行。

示例

在下面的例子中,我們將使用sort函式將雜湊集合轉換為字串。

package main
import (
   "fmt"
   "sort"
)

//create a main function
func main() {
   hashmap := map[string]string{ //create a hashmap using map literal
      "key1": "value1",
      "key2": "value2",
      "key3": "value3",
   }
   keys := make([]string, len(hashmap)) //create keys slice to print the string 
   i := 0
   for k := range hashmap {
      keys[i] = k
      i++
   }
   sort.Strings(keys) //sort the keys slice

   var hashmap_string string
   for _, k := range keys {
      v := hashmap[k]
      hashmap_string += fmt.Sprintf("%s:%s,", k, v) //add the key:value pairs
   }
   hashmap_string = "{" + hashmap_string[:len(hashmap_string)-1] + "}"
   fmt.Println("The hash collection after converted to string is:")

   fmt.Println(hashmap_string)  //print the string
}

輸出

The hash collection after converted to string is:
{key1:value1,key2:value2,key3:value3}

結論

我們使用兩個例子執行並編譯了將雜湊集合轉換為字串的程式。在第一個例子中,我們使用了json包,在第二個例子中,我們使用了sort包和迴圈來獲得所需的輸出。

更新於:2023年3月1日

734 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.