Rumah > pembangunan bahagian belakang > Golang > jenis golangchange

jenis golangchange

PHPz
Lepaskan: 2023-05-22 17:31:37
asal
622 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang sangat popular. Dalam beberapa tahun kebelakangan ini, dengan pembangunan Go, semakin ramai pembangun telah mula menggunakan Go untuk menulis aplikasi dan perkhidmatan. Sebagai bahasa yang ditaip secara statik, Go sangat ketat apabila mengisytiharkan pembolehubah dan jenis data serta menyemak sama ada pembolehubah dan jenis data ini sepadan semasa penyusunan kod. Walau bagaimanapun, kadangkala kita perlu menukar pembolehubah atau jenis data Pada masa ini, penukaran jenis Golang adalah sangat praktikal. Artikel ini akan meneroka cara penukaran jenis dilakukan di Golang dan dalam keadaan apa penukaran jenis diperlukan.

  1. Penukaran jenis dalam Golang

Di Golang, sintaks untuk penukaran jenis adalah sangat mudah. Anda hanya perlu menambah nama jenis yang hendak ditukar di hadapan nilai yang hendak ditukar untuk melengkapkan penukaran jenis. Contohnya, untuk menukar integer kepada menaip apungan:

var x int = 10
var f float64 = float64(x)
Salin selepas log masuk

Ini menukar x kepada menaip float64 dan memberikan hasilnya kepada f.

Apabila menukar jenis, anda perlu memberi perhatian kepada perkara berikut:

  1. Jenis yang hendak ditukar mestilah jelas. Dalam Go, penukaran jenis mestilah eksplisit dan tidak boleh samar-samar atau automatik. Jika tidak, ralat akan berlaku semasa penyusunan. Contohnya, kod berikut menyebabkan ralat kompilasi:
var x int = 10
var y float64 = x // 错误,需要明确转换为float64类型
Salin selepas log masuk
  1. Nilai yang ditukar mesti serasi dengan jenis yang ditukar. Jika nilai yang ditukar bukan jenis yang sama dengan jenis yang ditukar, dan tidak serasi, operasi penukaran gagal dan mengakibatkan ralat masa jalan. Contohnya, rentetan tidak boleh ditukar kepada integer melalui penukaran mudah:
rreee
  1. Untuk jenis struktur kompleks, penukaran manual diperlukan. Jika jenis yang ditukar adalah jenis struktur, setiap ahli dalam struktur perlu ditukar secara manual. Contohnya:
s := "123"
i := int(s) // 错误:无法将字符串转换为整数
Salin selepas log masuk

Dalam contoh di atas, kami menukar jenis Foo kepada jenis Bar. Oleh kerana tiada hubungan penukaran langsung antara kedua-dua jenis, kami perlu menukar secara manual setiap ahli dalam Foo kepada jenis yang sepadan dalam Bar.

  1. Apabila penukaran jenis diperlukan

Dalam program Golang, kita mungkin menghadapi senario yang memerlukan penukaran jenis. Senario berikut memerlukan penukaran jenis:

  1. Tukar nilai angka kepada rentetan. Apabila kita perlu menukar nombor integer atau titik terapung kepada rentetan, kita boleh menggunakan fungsi seperti strconv.Itoa() atau strconv.FormatFloat() untuk melengkapkan penukaran jenis. Contohnya:
type Foo struct {
    X int
    Y float64
}

type Bar struct {
    X string
    Y float32
}

func main() {
    f := Foo{10, 20.5}
    b := Bar{strconv.Itoa(f.X), float32(f.Y)}
    fmt.Println(b)
}
Salin selepas log masuk

Fungsi Itoa() menukar integer kepada rentetan dan fungsi FormatFloat() menukar nombor titik terapung kepada rentetan. Dalam fungsi FormatFloat(), parameter pertama ialah nombor titik terapung yang hendak ditukar, parameter kedua 'f' bermaksud menukar kepada nombor titik terapung biasa, parameter ketiga 2 bermaksud mengekalkan 2 tempat perpuluhan, dan parameter keempat 64 bermaksud Mengekalkan ketepatan nombor titik terapung kepada 64 bit.

  1. Tukar nilai rentetan kepada nilai angka. Kadangkala kita perlu menukar nilai rentetan kepada jenis data lain, seperti integer, nombor titik terapung atau pembolehubah Boolean. Anda boleh menggunakan strconv.Atoi(), strconv.ParseFloat(), strconv.ParseBool() dan fungsi lain untuk mencapai penukaran. Contohnya:
i := 10
s := strconv.Itoa(i) // 将整数转换为字符串
f := 3.14
sf := strconv.FormatFloat(f, 'f', 2, 64) // 将浮点数转换为字符串
Salin selepas log masuk

Dalam kod di atas, fungsi Atoi() menukar rentetan kepada integer, fungsi ParseFloat() menukar rentetan kepada nombor titik terapung dan fungsi ParseBool() menukar rentetan kepada pembolehubah Boolean. Perlu diingat bahawa nilai pulangan ralat boleh digunakan untuk menentukan sama ada penukaran berjaya untuk mengelakkan pengecualian program yang disebabkan oleh ralat penukaran.

  1. Tukar daripada satu jenis struktur kepada yang lain. Kadangkala kita perlu menukar satu jenis struktur kepada jenis struktur yang lain. Dalam kes ini, setiap ahli dalam struktur sumber perlu ditukar secara manual kepada jenis ahli yang sepadan dalam struktur sasaran. Contohnya:
s := "10"
i, err := strconv.Atoi(s) // 将字符串转换为整数
f, err := strconv.ParseFloat(s, 64) // 将字符串转换为浮点数
b, err := strconv.ParseBool("true") // 将字符串转换为布尔变量
Salin selepas log masuk

Dalam contoh di atas, kami menukar jenis Sumber kepada jenis Sasaran.

  1. Tukar jenis antara muka kepada jenis lain. Di Golang, jenis antara muka adalah jenis yang sangat berguna yang boleh melaksanakan fungsi seperti polimorfisme. Kadangkala kita perlu menukar jenis antara muka kepada jenis lain, dan kita perlu menggunakan penegasan jenis (Type Assertion) untuk melengkapkan. Sintaks penegasan jenis adalah seperti berikut:
type Source struct {
    X int
    Y float64
}

type Target struct {
    X string
    Y float32
}

func main() {
    s := Source{10, 20.5}
    t := Target{strconv.Itoa(s.X), float32(s.Y)}
    fmt.Println(t)
}
Salin selepas log masuk

Antaranya, ungkapan mewakili nilai yang akan ditukarkan; , menunjukkan sama ada penukaran berjaya. Contohnya:

value, ok = expression.(T)
Salin selepas log masuk

Dalam kod di atas, kami sedang menukar jenis antara muka kepada jenis integer. Melalui penegasan jenis, val berjaya ditukar kepada jenis integer, dan kemudian nilai dicetak.

  1. Ringkasan

Penukaran jenis ialah bahagian penting dalam Golang, yang boleh membantu kami memetakan jenis data tertentu kepada jenis data lain. Apabila melakukan penukaran jenis, anda perlu memberi perhatian kepada isu keserasian antara jenis data untuk mengelakkan ralat masa penyusunan atau masa jalan. Sintaks penukaran jenis Golang adalah ringkas dan mudah difahami, dan kami boleh mengendalikan isu penukaran jenis data yang berbeza mengikut keperluan khusus. Dengan menguasai pengetahuan penukaran jenis, kami boleh mengendalikan pelbagai keperluan penukaran jenis data dengan lebih bebas dalam program Golang.

Atas ialah kandungan terperinci jenis golangchange. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan