Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Melaksanakan Kefungsian ToString() Tersuai untuk Objek Bukan Rentetan dalam Go?

Bagaimanakah Saya Boleh Melaksanakan Kefungsian ToString() Tersuai untuk Objek Bukan Rentetan dalam Go?

DDD
Lepaskan: 2024-12-09 21:55:14
asal
1008 orang telah melayarinya

How Can I Implement Custom ToString() Functionality for Non-String Objects in Go?

Fungsi ToString() Tersuai dalam Go

Bahasa Go menyediakan rentetan.Sertai fungsi untuk menggabungkan kepingan rentetan, tetapi bagaimana jika anda mahu untuk menyertai objek sewenang-wenangnya dengan perwakilan rentetan tersuai? Soalan ini timbul apabila anda perlu menghantar objek bukan rentetan yang tidak melaksanakan kaedah ToString() secara asli.

Antaramuka ToString() Tersuai

Untuk menangani perkara ini isu, antara muka ToStringConverter tersuai boleh dibuat:

type ToStringConverter interface {
    ToString() string
}
Salin selepas log masuk

Sebarang objek yang melaksanakan antara muka ini kemudiannya boleh diserahkan kepada fungsi Sertai yang diubah suai:

func Join(a []ToStringConverter, sep string) string
Salin selepas log masuk

Melaksanakan ToString()

Untuk mendayakan perwakilan rentetan tersuai, cuma laksanakan kaedah String() untuk sebarang jenis bernama :

package main

import "fmt"

type bin int

func (b bin) String() string {
        return fmt.Sprintf("%b", b)
}

func main() {
        fmt.Println(bin(42))
}
Salin selepas log masuk

Taman permainan dan Output

Pautan taman permainan: [http://play.golang.org/p/Azql7_pDAA](http://play.golang.org/p/Azql7_pDAA)

Output :

101010
Salin selepas log masuk

Pendekatan ini membolehkan lebih fleksibiliti dalam penggabungan rentetan, membolehkan anda menggabungkan objek bukan rentetan dengan perwakilan rentetan tersuai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Kefungsian ToString() Tersuai untuk Objek Bukan Rentetan dalam Go?. 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