Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Uso do "self"

Queria tirar uma dúvida sobre o uso do "self".

No inicializador, é usado o self.name para definir valor para a variável name.

class Meal {
  var name:String
  var happiness:Int
  var itens = Array<Item>()

  init(name:String, happiness:Int) {
    self.name = name
    self.happiness = happiness
  }
}

Mas na função allCalories, no for, não foi preciso usar o self para chamar a variável itens:

func allCalories() -> Double {
  var total:Double = 0
  for item in itens {
    total += item.calorie
  }
  return total
}

Durante a vídeo aula eu pensei até que daria um erro, pois o correto (no meu ponto de vista) deveria ser:

func allCalories() -> Double {
  var total:Double = 0
  for item in self.itens {
    total += item.calorie
  }
  return total
}

Nesse caso simplesmente não é necessário usar o self, certo?

1 resposta
solução!

Olá Vinícius,

nesse caso não é necessário o uso do self. Na verdade, o único caso em que ele é necessário é quando existe uma variável local (na sua função, por exemplo) que tem o mesmo nome que o atributo do objeto. Nos outros casos, a linguagem entende que você está se referindo ao self implicitamente.

Dito isso, o self costuma ser usado por uma questão de clareza do código, para indicar que um certo elemento diz respeito à um atributo do objeto e não a uma variável local.