Как добавить значение Bool для структуры в Swift - PullRequest
1 голос
/ 16 января 2020

Итак, я пишу код в Swift и создал структуру под названием User. Он имеет четыре категории характеристик: имя, адрес электронной почты, количество подписчиков и статус активности. Я могу добавлять значения переменных структур, которые я создаю, без проблем, при условии, что они являются Strings или Ints, Dicts et c. Это не позволит мне добавить значение Bool. Сначала я установил для него значение «true», но я хотел бы добавить его в значение «false» после его инициализации. Я получаю сообщение об ошибке: «Значение типа« Bool »не имеет члена« append »». Я понимаю, что мне не разрешено добавлять его так же, как я могу, скажем, User.name.append ("Tim"), но я не получаю, как я на самом деле могу добавить его , Google был бесполезен, поиск в SO также не дал ничего примечательного, и документация Apple по Structs показывает, что они устанавливали похожие значения в своем объяснении в начале, используя Strings и Bools и добавляя Strings, но не добавляя Bools. Я не могу себе представить, что это невозможно, потому что все время меняется с истинного на ложный статус, в зависимости от ситуации. Если я уберу строку ниже, она будет скомпилирована нормально.

userTwo.isAcctive.append (false), где моя ошибка, для ясности.

Любая помощь будет оценена!

struct User {
  let name: String
  let email: String?
  var followers: Int
  var isActive: Bool

  init(name: String, email: String, followers: Int, isActive: Bool){
    self.name = name
    self.email = email
    self.followers = followers
    self.isActive = isActive
  }

  func logStatus(){
    if isActive == true{
    print("\(name) is working hard.")
    } else {
      print("\(name) has left the earth.")
    }
  }
}

var userOne = User(name: "Richard", email:("") , followers: 0, isActive: false)

var userTwo = User(name: "Elon", email:("elon@tesla.com") , followers: 2100, isActive: true)
print(userTwo.isActive)
userTwo.isActive.append(false)

userOne.logStatus()
userTwo.logStatus()

1 Ответ

0 голосов
/ 16 января 2020

Добавление заключается в добавлении нового элемента в массив. Я думаю, что вы хотите изменить свойство isActive. Вы можете сделать это:

var userTwo = User(name: "Elon", email:("elon@tesla.com") , followers: 2100, isActive: true)
userTwo.isActive = false
...