首頁 >後端開發 >Golang >golang怎麼將字串轉為整數

golang怎麼將字串轉為整數

青灯夜游
青灯夜游原創
2023-01-05 11:44:225621瀏覽

轉換方法:1、用Atoi(),可將字串型別的整數轉換為int型,語法「strconv.Atoi(str)」;2、用ParseInt(),可將字串轉換為整數值,接受正負號,語法「strconv.ParseInt(str,10,64)」;3、用ParseUnit(),可將字串轉換為整數值,不接受正負號,語法「strconv.ParseUint (str,10,64)」。

golang怎麼將字串轉為整數

本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

Go語言中strconv套件實現了基本資料類型和其字串表示的相互轉換。

strconv套件實作了基本資料型別與其字串表示的轉換,主要有以下常用函數: Atoi()、Itia()、parse系列、format系列、append系列。

下面介紹一下將字串轉為整數型的幾個函數。

Atoi()

#Atoi()函數用於將字串類型的整數轉換為int類型,函數簽名如下。

func Atoi(s string) (i int, err error)

如果傳入的字串參數無法轉換為int類型,就會回傳錯誤。

package main

import "fmt"
import "strconv"

func main() {
   s1 := "100"
      i, err := strconv.Atoi(s1)
   if err != nil {
      fmt.Println("can't convert to int")
   } else {
      fmt.Printf("type:%T value:%#v\n", i, i) //type:int value:100
   }
}

golang怎麼將字串轉為整數

Parse系列函數

#Parse類別函數用於轉換字串為給定類型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。其中ParseInt()和ParseUnit()用於字串轉整型。

ParseInt()

ParseInt()是將字串轉換為數字的函數

func ParseInt(s string, base int, bitSize int) (i int64, err error)

傳回字串表示的整數值,接受正負號。

  • base指定進位(2到36),如果base為0,則會從字串前置判斷,」0x」是16進制,」0」是8進制,否則是10進制;

  • bitSize指定結果必須能無溢出賦值的整數類型,0、8、16、32、64 分別代表int、int8、int16、int32 、int64;

  • 傳回的err是*NumErr型別的,如果語法有誤,err.Error = ErrSyntax;如果結果超出型別範圍err.Error = ErrRange。

ParseUnit()

func ParseUint(s string, base int, bitSize int) (n uint64, err error)

ParseUint類似ParseInt但不接受正負號,用於無符號整數。

範例:

package main

import "fmt"
import "strconv"

func main() {
	i, err1 := strconv.ParseInt("-2", 10, 64)
	u, err2 := strconv.ParseUint("2", 10, 64)
	if err1 != nil {
      fmt.Println("can't convert to int")
    } else {
      fmt.Printf("type:%T value:%#v\n", i, i) //type:int64 value:2
    }
	if err2 != nil {
      fmt.Println("can't convert to int")
    } else {
      fmt.Printf("type:%T value:%#v\n", u, u) //type:uint64 value:0x2
    }
}

golang怎麼將字串轉為整數

#ParseInt()和ParseUnit()函數都有兩個回傳值,第一個回傳值是轉換後的值,第二個回傳值為轉換失敗的錯誤訊息。

擴展知識:go中的整數

#Go語言同時提供了有符號和無符號的整數類型,其中包括int8、 int16、int32 和int64 四種大小截然不同的有符號整數類型,分別對應8、16、32、64 bit(二進位)大小的有符號整數,與此對應的是uint8、uint16、uint32 和uint64 四種無符號整數類型。

此外還有兩個整數類型 int 和 uint,它們分別對應特定 CPU 平台的字長(機器字大小),其中 int 表示有符號整數,應用最為廣泛,uint 表示無符號整數。實際開發中由於編譯器和電腦硬體的不同,int 和 uint 所能表示的整數大小會在 32bit 或 64bit 之間變化。

大多數情況下,我們只需要int 一種整數即可,它可以用於循環計數器(for 迴圈中控制迴圈次數的變數)、陣列和切片的索引,以及任何通用目的的整數運算符,通常int 型別的處理速度也是最快的。

用來表示 Unicode 字元的 rune 類型和 int32 類型是等價的,通常用來表示一個 Unicode 尺寸。這兩個名稱可以互換使用。同樣,byte 和 uint8 也是等價類型,byte 類型一般用於強調數值是一個原始的資料而不是一個小的整數。

最後,還有一個無符號的整數類型 uintptr,它沒有指定具體的 bit 大小但是足以容納指標。 uintptr 類型只有在底層程式設計時才需要,特別是Go語言和C語言函式庫或作業系統介面互動的地方。

儘管在某些特定的運行環境下int、uint 和uintptr 的大小可能相等,但是它們仍然是不同的類型,例如int 和int32,雖然int 類型的大小也可能是32 bit,但是在需要把int 類型當作int32 型別使用的時候必須顯示的對型別進行轉換,反之亦然。

Go語言中有符號整數採用2 的補碼形式表示,也就是最高bit 位元用來表示符號位,一個n-bit 的有符號數的取值範圍是從-2(n- 1) 到2(n-1)-1。無符號整數的所有 bit 位元都用來表示非負數,取值範圍為 0 到 2n-1。例如,int8 類型整數的取值範圍是從 -128 到 127,而 uint8 類型整數的值範圍是從 0 到 255。

【相關推薦:Go影片教學程式設計教學

以上是golang怎麼將字串轉為整數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn