var private(set)和let的区别是什么?

4
我使用一个内部库来初始化对象。这个库只接受 var 属性,但我不想在初始化后更改 var 属性。这个任务可以通过将属性声明为 let 来完成,但我无法这样做。
作为解决方案,我使用了 private(set),它的效果非常好。
但是,我想知道,var private(set) 和 let 之间有什么区别吗?
谢谢!

2
“init objects” 是什么意思?“This library accepts only var attributes” 是什么意思?请提供示例和任何相关的错误信息。 - jtbandes
这只是一个简单的上下文,这不是重点。谢谢您的反馈 :)。 - heming
1
如果您没有提供更多信息,就无法回复“我不知道这是否是一个好的解决方案。”-- 这可能是一种XY问题 - Martin R
Martin R,感谢您的反馈。目前我的解决方案还可以,我不需要一个新的解决方案。我只是提供了一些背景信息。我想知道var private(set)和let之间的区别。 - heming
1个回答

17

let 防止你修改变量的值。

private(set) var 阻止文件外的任何内容修改该变量的值,但类本身仍具有修改它的权限。


有性能影响吗? - fingia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接