gpt4 book ai didi

swift - Swift 中有 'didGet' 这样的东西吗?每当访问变量时运行的方法?

转载 作者:IT王子 更新时间:2023-10-29 05:52:19 24 4
gpt4 key购买 nike

基本上,我想这样做:

var counter : Int = 0;
private var _data : String;
var data : String {
get { counter += 1; return _data; }
set { _data = newValue; }
}

然后我想像这样减少它:

var counter : Int = 0;
var data : String {
get { counter += 1; return data; }
set { data = newValue; }
}

但是我注意到这是做不到的。 (错误:在其初始值范围内使用的变量)。所以我想像这样简化它:

var counter : Int = 0;
var data : String {
didGet { counter += 1; }
}

但是没有didGet这样的东西。有没有办法在不添加新的其他变量的情况下做到这一点?每次访问 data 时,我都需要运行 counter += 1,而不添加新变量作为存储。谢谢。

最佳答案

,不添加新变量是没有办法的。

如果您在变量的 get 方法中返回相同的变量,您将创建无限循环

关于swift - Swift 中有 'didGet' 这样的东西吗?每当访问变量时运行的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46149908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com