【发布时间】:2022-05-17 13:20:11
【问题描述】:
我想创建一个可以接受两个参数的函数,并根据输入的类型执行二进制运算(例如,'int' 简单加法,对于字符串,它应该连接等)并返回结果。对于以下方法,我收到诸如“二进制运算符‘+’不能应用于两个‘T’操作数”之类的错误
func commonAdd <T>(paramA:T,paramB:T)->T
【问题讨论】:
-
假设我传递给函数 2
UIButton(s),结果应该是什么? -
应该有一些方法来定义所有新类型输入的功能
-
所以你想为 Swift 支持的每一个 可能的类型定义一个规则?我的意思是 every Apple 框架和 every 第三方库中的 every 类型?你确定吗?
-
泛型概念涵盖的范围是什么
-
问题在于,使用此签名
func commonAdd <T>(paramA:T,paramB:T)->T,您可以保证给定两个相同类型的输入,您将能够对它们求和。但这是不可能的,因为我可以定义我自己的类型struct Foo { }(当然)不会由你的代码管理。