我如何才能确定我正在访问Swift中使用的正确值

  • 本文关键字:Swift 访问 swift
  • 更新时间 :
  • 英文 :


这是我的一个基本问题,我想知道,在将变量更新为新值后,我能100%确定在下一行代码中访问和读取它是100%安全的吗?或者可能需要一些内部处理延迟,以这种方式使用是不安全的。

用例是更新和读取它们在非常非常短的时间内生成的值,几乎为零纳秒延迟,就像手势一样

例如,我想用与value1完全相同的值更新value2,但我不知道这是一种安全的方式,因此我使用第二个函数,即我声明一个常数来更新value1value2。正如您所知,第二个函数的缺点是使用了一个额外的常量。

var value1: Int = 0
var value2: Int = 0
func valueFunction1() {

value1 = 50
value2 = value1

}
func valueFunction2() {

let value: Int = 50

value1 = value
value2 = value

}

当您编写并发代码(同时在多个线程上运行的代码(时,会出现这些问题。在这种情况下,您必须采取特殊的预防措施,以确保另一个线程不会更改您正在运行的代码下的值。

假设你不是在写多线程代码(基于你问题的基本性质,你现在应该避免这样做(,你可以绝对确定,一旦你改变了变量,它们就会呈现出新的值。任何给定的函数运行";"同步";(从上到下(,并在继续下一行之前完成每一行。(编译器和CPU可以用你的代码玩一些游戏,稍微扩展一下这些规则,但编译器的负担是确保变量在执行下一行时具有正确的值。(

最新更新