'мутирующий' в Swift

Как мы все знаем, классы являются ссылочным типом, тогда как структуры и перечисления имеют тип значения в swift. Это означает, что объект класса использует один экземпляр объекта и передает ту же ссылку, если передается любой функции или новому объекту, тогда как тип значения - это тот, который создает его копию и передает только значение.

This post was originally posted at https://agrawalsuneet.github.io/blogs/mutating-in-swift/ and reposted on Medium on 29th Mar 2019.

class Employee {
    var name : String
    var teamName : String
init(name: String, teamName: String) {
        self.name = name
        self.teamName = teamName
    }
func changeTeam(newTeamName : String){
        self.teamName = newTeamName
    }
}
var emp1 = Employee(name : "Suneet", teamName:"Engineering")
print(emp1.teamName)    //Engineering
emp1.changeTeam(newTeamName : "Product")
print(emp1.teamName)    //Product

      

struct Employee {
    var name : String
    var teamName : String
init(name: String, teamName: String) {
        self.name = name
        self.teamName = teamName
    }
func changeTeam(newTeamName : String){
        self.teamName = newTeamName
        //cannot assign to property: 'self' is immutable
}
}

cannot assign to property: 'self' is immutable

Компилятор также помогает нам с возможным решением

note: mark method 'mutating' to make 'self' mutable

struct Employee {
    var name : String
    var teamName : String
init(name: String, teamName: String) {
        self.name = name
        self.teamName = teamName
    }
mutating func changeTeam(newTeamName : String){
        self.teamName = newTeamName
    }
    
}
var emp1 = Employee(name : "Suneet", teamName:"Engineering")
print(emp1.teamName)    //Engineering
emp1.changeTeam(newTeamName : "Product")
print(emp1.teamName)    //Product

      

  • перечислить
  • структура
  • Int
  • Двойной
  • Строка
  • Массив
  • толковый словарь
  • Набор
  • Кортеж
  • Функции
  • Закрытие
  • Класс

Suggested posts

«Этот маленький остров меняет все»

Как мы разработали Lyft Live Activity, чтобы повысить качество обслуживания пассажиров

«Этот маленький остров меняет все»

Карьера в корне меняет правила игры Из всего, что мы делаем в Lyft, постановка пикапов между пассажирами и водителями — одна из самых сложных и важных. Успех этой хореографии зависит от того, насколько хорошо Lyft справляется со многими задачами, но важно просто держать райдеров в курсе.

Жизненный цикл приложения

Жизненный цикл приложения

: Цикл от запуска приложения до завершения работы: удобство использования за счет управления памятью или данными. ⬆️ Безопасность может быть обработана. UIApplication, AppDelegate. Состояние, в котором приложение запущено, но никаких событий не получено. Активное: состояние, в котором приложение работает и происходит событие. фон и не запускать код для делегирования функций в файле AppDelegate.swift.

Related posts

Отслеживайте кого угодно только по номеру телефона | OSINT-расследование

Отслеживайте кого угодно только по номеру телефона | OSINT-расследование

Вы можете быть исследователем OSINT, игроком CTF или просто тем, кто получает спам-звонки. Кто-то, кто пытается проверить номер, который вы видели в рекламе.

Медленная эрозия: раскрытие того, как люди угасают в своей карьере

Медленная эрозия: раскрытие того, как люди угасают в своей карьере

В современном быстро меняющемся и конкурентном мире карьера играет важную роль в личностном росте, финансовой стабильности и общей удовлетворенности жизнью. Однако многие люди оказываются в безжалостном цикле застоя и неудовлетворенности, постепенно угасая в своей профессиональной жизни.

Опасные разговоры

Опасные разговоры

Если мы хотим продолжать процветать на этой планете, нам придется вести опасные разговоры. Те, которые бросают вызов тому, что мы сделали, что мы делаем и что мы в настоящее время собираемся продолжать делать (или планируем делать).

Убийство Джордана Нили и проблема «патриотического» расизма

Могут ли США сделать важный шаг и не приравнивать расистское поведение к тому, чтобы быть хорошим американцем?

Убийство Джордана Нили и проблема «патриотического» расизма

[Предупреждение: в этом эссе есть снимки экрана, на которых люди восхваляют убийцу Джордана Нили.] Сотрудники правоохранительных органов наконец — и, возможно, неохотно — предъявили обвинение в этом убийстве Дэниелу Пенни, человеку, который душил Джордана Нили, пока тот не умер.