Безопасное преобразование из неподписанного в подписанный тип - PullRequest
0 голосов
/ 27 августа 2018

Имея

let finalValueUnsigned64:UInt64 

Я хотел бы преобразовать его в Int64

let finalValue = Int64(finalValueUnsigned64)

Но инициализаторы не выдают исключение, поэтому я могу обрабатывать ситуации, когда значение слишком велико и преобразование невозможно. Как я могу преобразовать любое неподписанное в подписанное, с некоторыми отзывами о том, возможно ли преобразование или нет?

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете использовать инициализатор Int64(exactly:), чтобы проверить, можно ли преобразовать значение или нет. Если значение не может быть представлено точно, оно вернет nil. Например:

Int8(exactly: 100)   // Optional(100)
Int8(exactly: 1_000) // nil
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...