Есть ли разница между & ldquo; мутирующим & rdquo; функция и & ldquo; inout & rdquo; параметры в Swift?

Для обновлений проверьте здесь .

Шаги по установке MongoDB Community Edition на Ubuntu 16.04

Запустите эти команды в терминале (Ctrl + Alt + T) :

Чтобы удалить уже установленный MongoDB

  1. sudo apt-get purge mongodb-org*
  2. sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb

Затем запустите с помощью следующих команд:

  1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
  2. echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
  3. sudo apt-get update
  4. sudo apt-get install -y mongodb-org

Чтобы запустить MongoDB run:

sudo service mongod start

3
задан subin272 27 March 2019 в 07:04
поделиться

3 ответа

Для меня я вижу разницу только в тех местах, где они используются.

Параметр, помеченный ключевым словом inout, позволяет передавать ваше значение любому подобному методу в качестве ссылки

func square(inout num: Int) { 
    num = num * num
}

В отличие от этого, метод, помеченный ключевым словом mutating, используется в области видимости и позволяет Вы можете изменить само значение этого метода

extension Int {

    mutating func square() {
        self = self * self
    }

}
0
ответ дан Robert Dresler 27 March 2019 в 07:04
поделиться

inout: - Это означает, что изменение локальной переменной также изменит передаваемые параметры. Без этого переданные параметры останутся неизменными.

Мутирование: -Свойства типов значений не могут быть изменены в его методах экземпляра по умолчанию. Чтобы изменить свойства типа значения, вы должны использовать ключевое слово mutating в методе экземпляра.

0
ответ дан Sonu 27 March 2019 в 07:04
поделиться

Методы экземпляров типов значений не могут изменять свойства типа значения (или самого значения), если они не помечены как mutating.

Функции любого вида не могут изменять свои параметры (и имеют распространение распространяется за пределы функции), если эти параметры не отмечены как inout.

Они делают похожую работу, но в разных контекстах.

0
ответ дан Amadan 27 March 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: