Тернарный оператор


#1

Всем привет, прошу новичку разобраться почему я не могу тернарным оператором проверить следующие условия:

var access = true

var accessDB = 0

accessDB > 0 ? access = true : access = false

Cannot assign to value: result of conditional operator ‘? :’ is never mutable

Я хочу понять можно ли такие вещи записывать тернарным оператором или это только if, если нельзя то что можно сравнивать тернарным оператором??


#2

Присвоение с тернарным оператором делается так:

access = accessDB > 0 ? true : false

Но, когда мы имеет дело с присвоением типа Bool, нам достаточно сделать такую запись:

access = accessDB > 0

#3

Спасибо большое!!!


#4

И на примере функции:

func hasAccessDB(_ accessDB: Int) -> Bool {
    // Вместо
    // let access = accessDB > 0
    // return access

    // Можно сразу возвращать результат без необходимости присвоения
    return accessDB > 0
}

#5

в таких случаях даже не обязательно писать ключевое слово return