13、Go 泛型与接口:提升代码灵活性与通用性

Go 泛型与接口:提升代码灵活性与通用性

1. Go 结构体中的泛型应用

在 Go 语言里,泛型能够极大地简化代码,尤其是在处理需要支持多种数据类型的场景时。下面以实现一个支持泛型的链表为例进行说明。

package main
import (
    "fmt"
)
type node[T any] struct {
    Data T
    next *node[T]
}
type list[T any] struct {
    start *node[T]
}
func (l *list[T]) add(data T) {
    n := node[T]{
        Data: data,
        next: nil,
    }
    if l.start == nil {
        l.start = &n
        return
    }
    if l.start.next == nil {
        l.start.next = &n
        return
    }
    temp := l.start
    l.start = l.start.next
    l.add(data)
    l.start = temp
}
func main() {
    var myList list[int]
    fmt.Println(myList)
    myList.add(12)
    myList.add(9)
    myList.add(3)
    myList.add(9)
    cur := myList.start
    for
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值