下面的代码给出了一个错误,因为它试图调用类的方法而不是全局函数:
func a(i: Int) -> Int {
return i + 10
}
class B {
func a(s: String) -> String {
return s + "bbb"
}
func b() {
print(a(100))
// Error (Cannot convert value of type 'Int' to expected argument type 'String')
}
}
答案 0 :(得分:6)
我的建议是将你的全局函数保存在这样的类中:
class Global {
static func a(i: Int) -> Int {
return i + 10
}
}
class B {
func a(s: String) -> String {
return s + "bbb"
}
func b() {
print(Global.a(100))
}
}
这样,您的代码更具可读性,并且不会让编译器感到困惑。
答案 1 :(得分:6)
B
中的参数相同,如下所示:
func b()
{
print(myApp.a(100))
}