首頁  >  文章  >  後端開發  >  Golang字元轉整型的高效方法分享

Golang字元轉整型的高效方法分享

王林
王林原創
2024-04-03 15:36:02619瀏覽

Go 中將字元高效轉換為整數的指南:使用 strconv.ParseInt() 函數,提供要轉換的字串和基數。使用 fmt.Scanf() 函數,指定格式化字串以讀取指定格式的資料。實戰案例:使用 strconv.ParseInt() 逐行讀取檔案並提取整數值。

Golang字元轉整型的高效方法分享

Go 中高效字元轉整型的指南

在 Go 中,將字元轉換為整數型是常見任務。雖然有幾種方法可以實現,但選擇一種高效且易於實施的方法非常重要。

strconv

strconv 套件提供了一個名為ParseInt 的函數,可用來將字串轉換為int64。此函數接受要轉換的字串和要使用的基數。

import (
    "strconv"
)

func main() {
    str := "123"

    // 将字符串转换为 int64
    num, err := strconv.ParseInt(str, 10, 64)
    if err != nil {
        // 处理错误
    }

    fmt.Println(num) // 输出:123
}

fmt

fmt 套件也提供了Scanf 函數,它可以從字串中讀取指定格式的數據。

import (
    "fmt"
)

func main() {
    str := "123"

    var num int64
    _, err := fmt.Scanf(str, "%d", &num)
    if err != nil {
        // 处理错误
    }

    fmt.Println(num) // 输出:123
}

實戰案例

假設我們有一個包含單字和整數值的文件,並且我們希望將整數值提取到slice 中:

apple 1
banana 2
cherry 3

我們可以使用bufio 套件來逐行讀取文件,然後使用strconvfmt 將行中整數值轉換為int

package main

import (
    "bufio"
    "fmt"
    "os"
    "strconv"
)

func main() {
    f, err := os.Open("values.txt")
    if err != nil {
        // 处理错误
    }
    defer f.Close()

    var values []int

    scanner := bufio.NewScanner(f)
    for scanner.Scan() {
        line := scanner.Text()
        parts := strings.Split(line, " ")
        if len(parts) == 2 {
            num, err := strconv.ParseInt(parts[1], 10, 32)
            if err != nil {
                // 处理错误
            }
            values = append(values, int(num))
        }
    }

    if err := scanner.Err(); err != nil {
        // 处理错误
    }

    fmt.Println(values) // 输出:[1 2 3]
}

以上是Golang字元轉整型的高效方法分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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