Tukar jenis tersuai kepada penunjuk jenis asas

WBOY
Lepaskan: 2024-02-09 17:36:09
ke hadapan
607 orang telah melayarinya

Tukar jenis tersuai kepada penunjuk jenis asas

editor php Baicao hari ini memperkenalkan kepada anda konsep penting tentang penukaran jenis - menukar jenis tersuai kepada penunjuk jenis asas. Dalam pengaturcaraan, kita selalunya perlu menukar jenis tersuai kepada penunjuk jenis asas untuk melaksanakan beberapa operasi tertentu. Operasi penukaran ini boleh membantu kami memproses data dengan lebih fleksibel dan meningkatkan kecekapan dan kebolehbacaan kod. Artikel ini akan menerangkan konsep ini secara terperinci dan memberikan beberapa contoh untuk membantu pembaca memahami dan menerapkannya dengan lebih baik.

Kandungan soalan

Andaikan saya mempunyai kod seperti ini:

type CustomStringType string

var a *CustomStringType

x := CustomStringType("sample string")
a = &x


var b *string
Salin selepas log masuk

Saya tidak boleh mengubah suai apa-apa dalam kod di atas.

Sekarang saya nak a 分配给 b

Saya mencuba pelbagai kaedah, seperti:

b = a
b = string(a)
b = a.(string)
b = a.(*string)
Salin selepas log masuk

Tetapi tiada satu pun daripada mereka yang benar-benar berkesan.

Penyelesaian

Gunakan jenis mudah Penukaran:

b = (*string)(a)
Salin selepas log masuk

Memandangkan jenis yang ingin anda tukar bermula dengan * 运算符开头,因此必须将其放在括号中以避免歧义(例如,您要转换为 *string,而不是 string dan membatalkan rujukan hasilnya).

(*string)(a) 是一个有效的转换,因为您想要将值从类型 *CustomStringType 转换为 *string, dan spesifikasi membenarkan penukaran sedemikian menggunakan peraturan berikut:

*CustomStringType*string 都是未命名指针类型,并且都以 string sebagai jenis asas penunjuknya.

Atas ialah kandungan terperinci Tukar jenis tersuai kepada penunjuk jenis asas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
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