美文网首页
go 泛型函数里调用公共方法

go 泛型函数里调用公共方法

作者: ljh123 | 来源:发表于2024-07-03 10:38 被阅读0次

在go泛型中,有时候会用到从泛型函数中调用结构体变量的方法

demo:

package main

import "fmt"

type T1 struct {
    Name string
    Age  int
}

func (this T1) F1() string {
    return fmt.Sprintf("name: %v", this.Name) + fmt.Sprintf(",age: %v", this.Age)
}

type T2 struct {
    Key string
}

func (this T2) F1() string {
    return fmt.Sprintf("key: %v", this.Key)
}

func Print1[T T1 | T2](t T) {
    // 尝试使用 fmt.Println(t.F1()) 会报错
    fmt.Println(t)
}

type I1 interface {
    T1 | T2
}

func Print2[T I1](t T) {
    // 尝试使用 fmt.Println(t.F1()) 会报错
    fmt.Println(t)
}

type I2 interface {
    T1 | T2
    F1() string
}

func Print3[T I2](t T) {
    fmt.Println(t.F1())
}

func main() {
    t1 := T1{Name: "hello", Age: 10}
    t2 := T2{Key: "key123"}

    Print1(t1)
    Print1(t2)

    Print2(t1)
    Print2(t2)

    Print3(t1)
    Print3(t2)
}

相关文章

  • TypeScript 学习笔记 之 泛型

    泛型函数 TS 泛型函数示例: 上面的函数调用时:1)显式指定类型: identify ("myString") ...

  • V语言学习笔记-14泛型

    目前的泛型主要有这三种:泛型结构体,泛型函数,泛型方法 泛型结构体 泛型函数 判断2个数组是否相等的泛型函数 泛型方法

  • Swift—泛型函数(自定义log)

    '' //方法, 依赖于类'' // 泛型函数, 泛型可以实现调用者传递什么类型就是什么类型'' func WFL...

  • Swift:泛型

    泛型 泛型函数泛型函数和非泛型函数的不同之处在于:泛型函数名(swapTwoValues(::))后面跟着 占位类...

  • R语言入门--第十八节(S3&处理大数据基建议)

    泛型函数- S3方法 泛型函数的应用结果根据R的对象的类的不同而有一定的差异,常见的泛型函数有print()、pl...

  • iOS Swift 泛型函数 类型约束

    非泛型函数 如果想实现不确定类型值的交换上面的方法是不是显得太过死板,所以泛型的出现很好的解决这个 泛型 泛型函数...

  • Go 语言程序设计——过程式编程(6)

    泛型函数 Go 语言提供了多种代替方法来避免创建一些除了处理的数据类型不同外其他完全相同的函数 下面就是一个支持泛...

  • Swift 泛型

    泛型函数 泛型类型 泛型约束

  • 泛型的初运用

    泛型函数 1.单一占位符泛型函数。 例如 两个数值进行处理,如果我们写成处理两个整数的话,那么再用这个方法来处理两...

  • TypeScript 泛型

    泛型函数 使用 数组 类 泛型约束

网友评论

      本文标题:go 泛型函数里调用公共方法

      本文链接:https://www.haomeiwen.com/subject/uqmbcjtx.html