После исследования stackoverflow о символах подчеркивания в Swift я понимаю, что подчеркивание означает: a) игнорировать эту функцию и b) вы можете опустить имя параметра при использовании метода. Я не понимаю, что произойдет, если мы назначим переменную подчеркиванию? Назначая знак подчеркивания переменной, это заставляет замолчать предупреждение компилятора из Xcode, которое гласит: «результат инициализации не используется», но он не отображает предупреждения, если вы не используете эту переменную каким-либо образом.Назначение переменной подстроки в Swift
Является ли эта переменная все еще созданной и сохраненной в памяти или она полностью игнорируется компилятором, как если бы это была строка кода, которая была закомментирована?
Например:
func test_ToDoItem_TakesTitle(){
let firstToDoItem = ToDoItem(title: "First Instance Title")
_ = ToDoItem(title: "First ToDoItem instance")
XCTAssertEqual(firstToDoItem.title, "First Instance Title")
}
Является ли следующая строка кода, созданного и сохраненного в памяти или проигнорирован:
_ = ToDoItem(title: "First ToDoItem instance")
Надеюсь, этот вопрос имеет смысл, потому что я хотел бы стать помнить о том, как каждый фрагмент памяти используется в Xcode.
Функция все же выполняется, однако, поскольку ссылки на него нет, память будет немедленно возвращена ARC. Вот это [предложение] (https://github.com/apple/swift-evolution/blob/master/proposals/0047-nonvoid-warn.md) для этого поведения –
@CodeDifferent, по-видимому, не сразу. Кажется, подождать, пока элемент не выйдет за рамки. См. Мой ответ для демонстрации. – vacawama
Oh wow @CodeDifferent ссылка, которую вы указали под названием «предложение», является ли это хранилище github с открытым исходным кодом, где люди предлагают предложения для быстрого языка, и Apple читает их? Если это так, я слышал об этом через подкасты, но просто хотел убедиться, что это все. –