我在某些功能的最终范围内有以下代码:
add (tempA, tempB)
这里,参数的类型是:
tempA: A
tempB: B
两者都被声明为局部变量。
而且,这是功能添加的原型:
add (a: A; b: B)
我得到的编译错误:
Formal argument type: Generic #1
Actual argument type: detachable Generic #1
如何从可拆卸的通用类型中将“tempA”和“tempB”的类型即时转换为通用类型?这样我就可以传递它们来添加功能。
我不是在改变原型,但我可以改变“tempA”和“tempB”的类型。
答案 0 :(得分:2)
在初始化之前,局部变量被视为可拆卸。可以通过为它们赋值来初始化它们
tempA := exprA -- exprA should return a value of type A
tempB := exprB -- exprB should return a value of type B
(例如exprA
可能是相关特征的正式参数)或直接创建对象:
create tempA
create tempB
(如果需要,可能还有创建程序,即create tempA.make ...
)。