Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menukar rentetan kepada integer dalam golang

Bagaimana untuk menukar rentetan kepada integer dalam golang

青灯夜游
青灯夜游asal
2023-01-05 11:44:225628semak imbas

Kaedah penukaran: 1. Gunakan Atoi() untuk menukar integer jenis rentetan kepada jenis int, sintaksnya ialah "strconv.Atoi(str)" 2. Gunakan ParseInt() untuk menukar rentetan Ia ialah nilai integer, dan tanda diterima, dan sintaksnya ialah "strconv.ParseInt(str,10,64)" 3. Gunakan ParseUnit() untuk menukar rentetan kepada nilai integer dan tanda itu tidak diterima , dan sintaksnya ialah "strconv.ParseUint (str,10,64)".

Bagaimana untuk menukar rentetan kepada integer dalam golang

Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.

Pakej strconv dalam bahasa Go melaksanakan penukaran bersama antara jenis data asas dan perwakilan rentetannya.

Pakej strconv melaksanakan penukaran jenis data asas dan perwakilan rentetannya, terutamanya termasuk fungsi biasa berikut: Atoi(), Itia(), siri parse, siri format dan siri tambahan.

Berikut memperkenalkan beberapa fungsi untuk menukar rentetan kepada integer.

Atoi()

Atoi()Fungsi ini digunakan untuk menukar integer jenis rentetan kepada jenis int mengikuti.

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

Jika parameter rentetan masuk tidak boleh ditukar kepada jenis int, ralat akan dikembalikan.

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
   }
}

Bagaimana untuk menukar rentetan kepada integer dalam golang

Menghuraikan fungsi siri

Fungsi kelas parse digunakan untuk menukar rentetan kepada Nilai yang diberikan jenis: ParseBool(), ParseFloat(), ParseInt(), ParseUint(). Antaranya, ParseInt() dan ParseUnit() digunakan untuk menukar rentetan kepada integer.

ParseInt()

ParseInt() ialah fungsi yang menukar rentetan kepada nombor

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

Mengembalikan nilai integer yang diwakili oleh rentetan, Menerima tanda tambah dan tolak.

  • asas menentukan asas (2 hingga 36 Jika asas ialah 0, ia akan dinilai daripada awalan rentetan "0x" ialah perenambelasan dan "0" ialah perlapanan. sistem, jika tidak ia adalah perpuluhan;

  • bitSize menentukan jenis integer yang hasilnya mesti diberikan tanpa limpahan, 0, 8, 16, 32, dan 64 masing-masing mewakili int, int8, int16 , dan int32 , int64;

  • Ralat yang dikembalikan adalah daripada jenis *NumErr Jika sintaks salah, err.Error = ErrSyntax; ErrRange.

ParseUnit()

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

ParseUint adalah serupa dengan ParseInt tetapi tidak menerima tanda dan digunakan untuk integer tidak bertanda.

Contoh:

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
    }
}

Bagaimana untuk menukar rentetan kepada integer dalam golang

Kedua-dua fungsi ParseInt() dan ParseUnit() mempunyai dua nilai pulangan, yang pertama The nilai pulangan ialah nilai yang ditukar, dan nilai pulangan kedua ialah mesej ralat jika penukaran gagal.

Pengetahuan lanjutan: Integer dalam go

Bahasa Go menyediakan kedua-dua jenis integer yang ditandatangani dan tidak ditandatangani, termasuk int8, int16, int32 dan int64 adalah empat jenis integer yang ditandatangani dengan saiz yang berbeza, sepadan dengan integer yang ditandatangani dengan saiz 8, 16, 32 dan 64 bit (bit binari) Sepadan dengan ini ialah uint8, uint16, uint32 dan uint64.

Selain itu, terdapat dua jenis integer, int dan uint, yang masing-masing sepadan dengan panjang perkataan (saiz perkataan mesin) bagi platform CPU tertentu Int mewakili integer bertanda, yang paling banyak digunakan. dan uint mewakili integer tidak bertanda. Dalam pembangunan sebenar, disebabkan oleh perbezaan dalam penyusun dan perkakasan komputer, saiz integer yang boleh diwakili oleh int dan uint akan berbeza antara 32bit atau 64bit.

Dalam kebanyakan kes, kita hanya memerlukan jenis integer, yang boleh digunakan untuk pembilang gelung (pembolehubah dalam untuk gelung yang mengawal bilangan gelung), indeks tatasusunan dan hirisan dan sebarang pengendali Integer tujuan umum, selalunya jenis int juga paling cepat dalam kelajuan pemprosesan.

Jenis rune yang digunakan untuk mewakili aksara Unicode adalah bersamaan dengan jenis int32, dan biasanya digunakan untuk mewakili titik kod Unicode. Kedua-dua nama itu boleh digunakan secara bergantian. Begitu juga, bait dan uint8 juga merupakan jenis yang setara Jenis bait biasanya digunakan untuk menekankan bahawa nilai adalah data primitif dan bukannya integer kecil.

Akhir sekali, terdapat uintptr jenis integer tidak bertanda, yang tidak menyatakan saiz bit tertentu tetapi cukup besar untuk menampung penunjuk. Jenis uintptr hanya diperlukan dalam pengaturcaraan peringkat rendah, terutamanya apabila bahasa Go berinteraksi dengan pustaka fungsi bahasa C atau antara muka sistem pengendalian.

Walaupun saiz int, uint dan uintptr mungkin sama dalam beberapa persekitaran operasi tertentu, mereka masih jenis yang berbeza, seperti int dan int32 Walaupun saiz jenis int juga mungkin 32 bit, Bila anda perlu menggunakan jenis int sebagai jenis int32, anda mesti menukar jenis secara eksplisit, dan sebaliknya.

Integer yang ditandatangani dalam bahasa Go diwakili dalam bentuk pelengkap 2, iaitu, bit tertinggi digunakan untuk mewakili bit tanda Julat nilai nombor bertanda n-bit adalah dari -2(n-. 1) hingga 2(n-1)-1. Semua bit integer tidak bertanda digunakan untuk mewakili nombor bukan negatif, dan julat nilai ialah 0 hingga 2n-1. Sebagai contoh, integer jenis int8 berjulat dari -128 hingga 127, manakala integer jenis uint8 berjulat dari 0 hingga 255.

[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]

Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan kepada integer dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn