В Swift, когда предпочтительнее использовать функции inout, а не функции, которые модифицируют один параметр и возвращают этот измененный параметр?
Это, вероятно, индивидуальный сценарий, и я чувствую, что использую функцию, которая возвращаетпереданный параметр более явный в вызове и, следовательно, более читабельный, но я не уверен, например, о влиянии копирования объекта на память.
Возьмем следующий пример:
func addConstraints(to label: UILabel) -> UILabel {
let constrainedLabel = label
//Add all constraints to constrained label
return constrainedLabel
}
Является ли это благоприятным для:
func addConstraints(to label: inout UILabel){
//Add constraints
}
Большое спасибо и извините, если на этот вопрос уже дан ответ или он слишком широкий.
Редактировать, потому что я, очевидно, использовал наихудший возможный пример:
Что лучше:
let num = 5
num = addOne(to: num)
func addOne(to num: Int) -> Int {
return num + 1
}
или
let num = 5
addOne(to: num)
func addOne(to num: inout Int) -> Int {
num + 1
}