Rumah > pembangunan bahagian belakang > Golang > Fungsi dalam Go yang menukar hirisan int kepada jenis penuding hirisan int tersuai

Fungsi dalam Go yang menukar hirisan int kepada jenis penuding hirisan int tersuai

王林
Lepaskan: 2024-02-08 21:33:09
ke hadapan
535 orang telah melayarinya

Go 中将 int 切片转换为自定义 int 切片指针类型的函数

Apa yang akan diperkenalkan oleh editor PHP Xinyi kepada anda hari ini ialah fungsi yang menukar hirisan int kepada jenis penunjuk hirisan int tersuai dalam bahasa Go. Dalam bahasa Go, slice ialah jenis data yang sangat biasa digunakan yang boleh menambah atau mengurangkan bilangan elemen secara dinamik. Kadangkala kita perlu menukar kepingan kepada jenis penuding kepingan tersuai untuk operasi dalam fungsi. Artikel ini akan menerangkan secara terperinci cara untuk mencapai penukaran ini dan memberikan kod sampel untuk rujukan. Melalui kajian artikel ini, saya percaya bahawa semua orang akan mempunyai pemahaman yang lebih mendalam tentang penggunaan kepingan dalam bahasa Go.

Kandungan soalan

Saya ingin mengambil sekeping int sebagai input kepada pembina dan mengembalikan penunjuk ke senarai asal, menaip ke jenis tersuai luaran saya (type intlist []int).

Saya boleh melakukan ini:

type intlist []int

func newintlistptr(ints []int) *intlist {
    x := intlist(ints)
    return &x
}
Salin selepas log masuk

Tetapi saya tidak boleh melakukan ini:

type IntList []int

func NewIntListPtr(ints []int) *IntList {
    return &ints
}

// or this for that matter:

func NewIntListPtr(ints []int) *IntList {
    return &(IntList(ints))
}

// or this

func NewIntListPtr(ints []int) *IntList {
    return &IntList(*ints)
}

// or this

func NewIntListPtr(ints *[]int) *IntList {
    return &(IntList(*ints))
}
Salin selepas log masuk

Adakah ayat yang boleh mencapai ini?

Penyelesaian

Anda lakukan ini:

func NewIntListPtr(ints []int) *IntList {
    return (*IntList)(&ints)
}
Salin selepas log masuk

Atas ialah kandungan terperinci Fungsi dalam Go yang menukar hirisan int kepada jenis penuding hirisan int tersuai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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