加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

function – Swift,变量与方法名称相同

发布时间:2020-12-14 05:25:34 所属栏目:百科 来源:网络整理
导读:我有一个 : var formVC:UIViewController! 我也想尝试一个名为的函数: func formVC()-UIViewController{....} 我知道在OBJC中它有用,但我没有看到在Swift中这样做的方法.有没有办法解决这个问题,或者我不理解Swift中明显的架构/概念变化? 提前致谢. 这在O
我有一个 :
var formVC:UIViewController!

我也想尝试一个名为的函数:

func formVC()->UIViewController{....}

我知道在OBJC中它有用,但我没有看到在Swift中这样做的方法.有没有办法解决这个问题,或者我不理解Swift中明显的架构/概念变化?

提前致谢.

这在ObjC中是一个坏主意,在Swift中它是非法的.考虑其中一些情况:
class X {
    var value : Int = 0
    func value() -> Int { return 1 }
}
let x = X()

在这种情况下x.value是什么?是Int还是它() – >诠释?将类的方法视为闭包是合法且有用的.

如果我们更加棘手,并且这样做会怎样?

class X {
    let value: () -> Int = { 2 }
    func value() -> Int { return 1 }
}
let x = X()
let v = x.value() // ????

Swift应该使用属性值然后调用它吗?或者它应该调用方法值()?闭包是完全合法的属性.

ObjC实际上存在相同的限制.您无法创建与方法冲突的合成属性(如果它们具有不同的类型;如果它们具有相同的时间,则ObjC将默默地不合成访问器).你正在考虑Swift属性,就像它们等同于ObjC的ivars,但那是不对的. Swift的属性等同于ObjC的属性(即访问ivars的方法).您无法访问Swift中的基础ivars.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读