Rumah > pembangunan bahagian belakang > Golang > Bincangkan konsep paksaan jenis di Golang

Bincangkan konsep paksaan jenis di Golang

PHPz
Lepaskan: 2023-04-21 14:55:37
asal
695 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang dikuatkuasakan jenis, yang bermaksud bahawa jenis data yang sama mesti digunakan semasa melakukan penetapan pembolehubah atau hantaran parameter. Walau bagaimanapun, terdapat situasi di mana kita perlu menukar satu jenis data kepada yang lain. Ini memerlukan pemutus jenis.

Artikel ini akan membincangkan konsep, penggunaan dan langkah berjaga-jaga bagi jenis paksaan di Golang.

Konsep pemutus jenis

Pemutus jenis adalah untuk menukar nilai satu jenis data kepada nilai jenis data lain, yang biasanya berlaku dalam situasi berikut:

  1. Jenis ungkapan tidak padan.
  2. Tetapkan nilai antara pembolehubah pelbagai jenis.
  3. Apabila menghantar parameter antara fungsi.

Di Golang, penghantaran jenis boleh digunakan untuk menukar satu jenis data asas kepada yang lain, atau ia boleh digunakan untuk menukar satu jenis tersuai kepada jenis tersuai yang lain.

Penukaran jenis data asas

Di Golang, terdapat beberapa jenis data asas yang boleh dihantar. Ini termasuk: integer, titik terapung dan Boolean.

  1. Penukaran integer

boleh menukar satu jenis integer kepada jenis integer yang lain. Jika jenis data asal lebih besar daripada jenis sasaran, pemotongan berlaku. Jika jenis data asal lebih kecil daripada jenis sasaran, pengembangan berlaku.

Contohnya:

var a int32 = 100
var b int64
b = int64(a)
fmt.Printf("%T, %vn", b , b)

Hasil output ialah:

int64, 100

  1. Penukaran jenis titik terapung

boleh menukar terapung jenis titik Tukar kepada jenis titik terapung yang lain. Jika jenis data asal berbeza daripada jenis sasaran, kehilangan ketepatan akan berlaku.

Contohnya:

var a float32 = 10.5
var b float64
b = float64(a)
fmt.Printf("%T, %vn", b , b)

Hasil output ialah:

float64, 10.5

  1. Penukaran Boolean

boleh menukar nilai Boolean kepada Jenis integer atau jenis rentetan. Tukar benar kepada 1 dan palsu kepada 0.

Contohnya:

var a bool = true
var b int
b = int(a)
fmt.Printf("%T, %vn", b , b)

Hasil output ialah:

int, 1

Penukaran jenis tersuai

Di Golang, penukaran antara jenis tersuai mesti Lakukan secara eksplisit . Jika anda ingin menukar satu jenis tersuai kepada yang lain, anda perlu melaksanakan dua kaedah berikut:

  1. Kaedah untuk menukar jenis asal kepada jenis sasaran.
  2. Kaedah untuk menukar jenis sasaran kembali kepada jenis asal.

Contohnya:

taip struct Pelajar{

Name string
Age int
Salin selepas log masuk
Salin selepas log masuk

}

func (s Student) tostring() string{

return fmt.Sprintf("Name: %s, Age: %d", s.Name, s.Age)
Salin selepas log masuk

}

taip Teacher struct{

Name string
Age int
Salin selepas log masuk
Salin selepas log masuk

}

func (t Teacher) tostring() string{

return fmt.Sprintf("Name: %s, Age: %d", t.Name, t.Age)
Salin selepas log masuk

}

func main() {

s := Student{Name: "小明", Age: 18}
t := Teacher(s) // 将Student类型转换为Teacher类型
fmt.Println(t.tostring())

s2 := Student(t) // 将Teacher类型转换为Student类型
fmt.Println(s2.tostring())
Salin selepas log masuk

}

Hasil output ialah:

Nama: Xiao Ming, Umur: 18

Nama: , Umur: 0

Nota: Apabila menukar jenis tersuai kepada jenis lain, anda mesti memastikan kedua-dua jenis mempunyai medan dan kaedah yang sama.

Jenis penegasan

Selain pemutus taip, Golang juga menyediakan penegasan jenis untuk mendapatkan jenis nilai sebenar dalam antara muka. Di Golang, antara muka adalah konsep yang sangat penting kerana ia boleh menyediakan mekanisme penukaran jenis universal. Apabila kita perlu mendapatkan nilai daripada antara muka, kita perlu menggunakan penegasan jenis.

Contohnya:

antara muka var x{} = 1
i, ok := x.(int)
fmt.Println(i, ok)

Outputnya ialah:

1 benar

Jika nilai antara muka x mengandungi nilai jenis int, maka pembolehubah i akan mengandungi nilai dan pembolehubah ok akan menjadi benar. Jika nilai antara muka x tidak mengandungi nilai jenis int, pembolehubah i akan mengandungi nilai lalai 0 dan pembolehubah ok akan menjadi palsu.

Nota: Untuk jenis antara muka yang tidak boleh ditegaskan, penegasan taip akan panik. Oleh itu, sebelum membuat penegasan jenis, anda mesti menggunakan pertimbangan jenis untuk menyemak jenis sebenar antara muka.

Ringkasan

Golang menyediakan mekanisme yang mudah dan berkesan untuk paksaan jenis data. Walau apa pun, berhati-hati mesti diambil semasa menghantar jenis data kerana ia boleh menyebabkan kehilangan ketepatan atau pemotongan. Apabila menukar jenis tersuai kepada jenis lain, anda mesti memastikan kedua-dua jenis mempunyai medan dan kaedah yang sama dan anda mesti melaksanakan kaedah penukaran secara eksplisit. Penegasan jenis ialah kaedah untuk mendapatkan jenis sebenar daripada antara muka. Secara ringkasnya, penghantaran jenis data yang betul dan penegasan jenis boleh membantu pengaturcara Golang meningkatkan kecekapan dan kebolehbacaan kod mereka.

Atas ialah kandungan terperinci Bincangkan konsep paksaan jenis di Golang. 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