Как объявить изменчивые переменные в Swift
Я хочу преобразовать в Swift из Objective-C кода, например:
int sum = 0;
x = 1;
for (int i = 0; i < 100; i++) {
sum += x;
}
x доступен из других потоков. Таким образом, x объявляется как изменчивая переменная.
volatile int x;
Как написать этот код в Swift?
Ответы
Ответ 1
Если вы хотите использовать x из любого места, вам нужно написать эту переменную следующим образом:
var x = 0
int sum = 0; х = 1; для (int i = 0; i & lt; 100; i++) {sum + = x; }
Обновленный код:
var sum = 0 x = 1 для (i в 0.. & lt; 100) {sum = sum + x}
- var sum = 0
Вы можете определить эту переменную в любом месте класса или за его пределами.
- let sum = 0
Вы не сможете редактировать это значение.
Дайте нам знать, если какая-то путаница здесь.
Ответ 2
В Swift у вас есть доступ к более мощным средствам выражения глобальной синхронности значений, особенно на уровне типа, чем ключевое слово volatile. Например, вы можете выбрать блокировки для синхронизации доступа для чтения и записи к переменной. Вы можете использовать MVar, чтобы указать, что переменная должна иметь только 1 допустимое состояние для нескольких потоков. Или вы можете просто не указывать проблему в Swift. Поскольку язык вытесняет изменчивые квалификаторы из импортированного кода, кажется, что приложения, которые хотят использовать эту функцию, должны придерживаться использования C или Objective-C и представлять интерфейс для любого заинтересованного кода Swift.