1
Используя мой 64 бит Mac (Macbook Pro 2009), этот код в Xcode игровой площадке действует странно:Swift - поведение UInt
let var1 = UInt32.max // 4,294,967,295
let var2 = UInt64.max // -1 --> why?
var var3: UInt = UInt.max // -1 --> why?
var3 = -1 // generates an error.
var3
установки в -1
должен генерировать ошибку. Но в строке декларации он стал равным -1
.
Вы говорите, площадка позволяет писать 'var3 = -1' без сообщения об ошибке? – Cristik
@Cristik Нет, как я написал в 4-й строке кода, он вызывает ошибку. Но я не уверен, почему компилятор устанавливает его в '-1' в строке 3. – Milad
Я думаю, что это всего лишь ошибка в представлении молитвы неподписанного 64-битного целого числа, которое, вероятно, интерпретируется как подписанное. Если вы добавите 'print (var2)', вы увидите правильный номер. – courteouselk