Ответ 1
Концепция IntMax
полностью удалена как часть SE-104.
Преобразование из одного целочисленного типа в другое выполняется с использованием понятия "максимальное целое число ширины" (см.
MaxInt
), что является искусственным ограничением. Само существованиеMaxInt
не дает понять, что делать, если кто-то реализуетInt256
, например.
Предлагаемая модель исключает концепцию "наибольшего целочисленного типа", ранее использовавшуюся для взаимодействия между целыми типами (см.
toIntMax
в текущей модели) и вместо этого обеспечивает доступ к машинным словам. Он также вводит методыmultipliedFullWidth(by:)
,dividingFullWidth(_:)
иquotientAndRemainder
. Вместе эти изменения могут быть использованы для обеспечения эффективной реализации бонусов, которых было бы трудно достичь в противном случае.
В этом конкретном случае FB SDK должен просто использовать инициализатор UInt64($0)
, который теперь доступен для любого типа BinaryInteger
благодаря новым протоколам.