Преобразование положительного значения в отрицательное значение в Swift

Я хочу преобразовать положительное значение в отрицательное значение, например:

let a: Int = 10

превратить его в -10, моя текущая идея состоит в том, чтобы просто использовать его для нескольких -1

a * -1

Я не уверен, что это правильно, есть идеи?


person William Hu    schedule 10.08.2018    source источник


Ответы (2)


Просто используйте оператор -.

let negativeA = -a
person Sviatoslav Yakymiv    schedule 10.08.2018

В Swift 5, в соответствии с вашими потребностями, вы можете использовать один из двух следующих способов, чтобы преобразовать целое число в его аддитивную инверсию.


№1. Использование метода negate()

Int имеет метод negate(). negate() имеет следующее объявление:

mutating func negate()

Заменяет это значение его аддитивной инверсией.

Примеры кода Playground ниже показывают, как использовать negate() для изменения целого числа и замены его значения его аддитивной инверсией:

var a = 10
a.negate()
print(a) // prints: -10
var a = -10
a.negate()
print(a) // prints: 10

Обратите внимание, что negate() также доступен для всех типов, соответствующих протоколу SignedNumeric.


№ 2. Использование унарного оператора минус (-)

Знак числового значения можно переключать с помощью префикса -, известного как унарный минус оператор. Примеры кода Playground ниже показывают, как его использовать:

let a = 10
let b = -a
print(b) // prints: -10
let a = -10
let b = -a
print(b) // prints: 10
person Imanou Petit    schedule 31.03.2019
comment
К сожалению, с Double, если значение равно нулю, вы получаете -0, что является нечетным (но действительным). - person RPSM; 05.01.2021