Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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

王林
王林ke hadapan
2024-02-08 21:33:09521semak imbas

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
}

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))
}

Adakah ayat yang boleh mencapai ini?

Penyelesaian

Anda lakukan ini:

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

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam