Rumah  >  Artikel  >  pembangunan bahagian belakang  >  pelaksanaan penegasan golang

pelaksanaan penegasan golang

王林
王林asal
2023-05-13 10:08:371164semak imbas

Golang ialah bahasa yang mempunyai keupayaan serentak dan pengaturcaraan sistem yang berkuasa. Ia adalah bahasa tersusun yang direka untuk menjadikan pengaturcaraan lebih cepat dan lebih mudah. Penegasan adalah konsep penting dalam Golang. Ia membenarkan pengaturcara untuk "menegaskan" jenis pembolehubah atau antara muka semasa menulis kod, supaya jenis yang betul boleh disemak semasa masa jalan.

1. Apakah penegasan?

Penegasan ialah kaedah pengesahan jenis yang boleh menentukan sama ada pembolehubah atau antara muka tergolong dalam jenis tertentu apabila kod sedang dijalankan. Lazimnya, penegasan digunakan untuk menyemak ketepatan kod kompilasi pasca dan untuk mengesan dan menyelesaikan ralat lebih awal.

Di Golang, penegasan dilaksanakan melalui kata kunci "antara muka{}". antara muka{} mewakili antara muka kosong, yang boleh menerima semua jenis data. Antara muka kosong boleh ditukar kepada jenis konkrit lain dengan menggunakan penukaran jenis.

Sebagai contoh, kod berikut menggunakan kata kunci "antara muka{}" untuk melaksanakan penegasan:

var i interface{} = "Hello"
s := i.(string)
fmt.Println(s)

Dalam contoh ini, antara muka kosong "antara muka{}" digunakan untuk menahan " Hello" rentetan. Kemudian, gunakan penegasan "i.(string)" untuk menukarnya kepada jenis rentetan. Akhir sekali, gunakan "fmt.Println(s)" untuk mencetak rentetan "Hello".

2. Tiga kaedah penegasan di Golang

Di Golang, terdapat tiga cara untuk menegaskan, iaitu taip penyata semakan, taip penyataan penegasan dan taip penyataan penghakiman:

  1. Type check statement
value, isType := someVariable.(Type)

Antaranya, "value" mewakili pembolehubah yang boleh menyimpan nilai yang ditukar; "isType" ialah pembolehubah jenis Boolean. Jika penukaran berjaya, ia akan Ditetapkan kepada True .

Contohnya:

var i interface{} = 55
s, ok := i.(string)
if ok {
  fmt.Printf("%q
", s)
} else {
  fmt.Printf("unexpected type %T
", i)
} 

Dalam contoh ini, pembolehubah "i" ialah antara muka kosong dan menyimpan nilai jenis Integer "55". Tukarkannya kepada jenis rentetan dengan menggunakan penegasan "s, ok := i.(string)" dan simpan nilai yang ditukar dalam pembolehubah "s"; Kemudian, hasil penukaran dinilai melalui pernyataan bersyarat "jika ok". Jika ia adalah jenis rentetan, rentetan "55" dicetak, jika tidak "jenis tidak dijangka" dicetak.

2. Taip pernyataan penegasan

value := someVariable.(Type)

Pernyataan penegasan jenis adalah serupa dengan penyataan semakan jenis, tetapi ia tidak mengembalikan nilai Boolean sama ada penukaran berjaya. Jika penukaran jenis gagal, program akan ranap dan mengembalikan ralat panik.

Contohnya:

var i interface{} = 55
s := i.(string) // panic: interface conversion: interface is int, not string

Dalam contoh ini, pembolehubah "i" ialah antara muka kosong dan menyimpan nilai jenis Integer "55". Walaupun kami berhasrat untuk menukarnya kepada jenis rentetan, penegasan jenis akan menimbulkan ralat panik, "penukaran antara muka: antara muka adalah int, bukan rentetan".

3. Taip pernyataan penghakiman

switch someVariable.(type) {
case Type1:
    // someVariable 为Type1类型
case Type2:
    // someVariable 为Type2类型
default:
    // someVariable 不是Type1或Type2类型
}

Pernyataan penghakiman jenis adalah serupa dengan pernyataan semakan jenis, tetapi ia tidak mengembalikan nilai Boolean sama ada penukaran berjaya. Dengan menggunakan pernyataan penghakiman jenis, "switch someVariable.(type)" boleh menentukan jenis pembolehubah dan melaksanakan blok kod yang berbeza mengikut jenisnya yang berbeza.

Contohnya:

var i interface{} = 55
switch i.(type) {
case int:
  fmt.Println("i is an int")
case string:
  fmt.Println("i is a string")
default:
  fmt.Printf("Unexpected type %T", i)
}

Dalam contoh ini, pembolehubah "i" ialah antara muka kosong dan menyimpan nilai jenis Integer. Dengan menggunakan pernyataan penghakiman jenis, "suis i.(jenis)" boleh menentukan jenis pembolehubah "i" dan melaksanakan blok kod yang sepadan. Memandangkan "i" ialah jenis integer, kod akan mencetak "i ialah int".

3. Kesimpulan

Di Golang, penegasan adalah teknologi yang biasa digunakan. Ia membolehkan pengaturcara menyemak jenis pembolehubah atau antara muka pada masa jalan untuk mengelakkan akibat serius yang disebabkan oleh ralat jenis kemudian. Dalam artikel ini, kami memperkenalkan tiga kaedah penegasan di Golang, termasuk penyataan semakan jenis, penyataan penegasan jenis dan penyataan pertimbangan jenis. Setiap kaedah penegasan mempunyai kelebihan dan batasannya yang unik, dan pengaturcara boleh memilih kaedah yang sesuai dengan mereka mengikut keperluan sebenar.

Atas ialah kandungan terperinci pelaksanaan penegasan 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
Artikel sebelumnya:penyahkodan imej golang gagalArtikel seterusnya:penyahkodan imej golang gagal