Параметры функции Swift 2.0 «inout» и вычисляемые свойства

Я сейчас тестирую бета-версию Swift 2.0 и обнаружил странное поведение. Вот пример кода:

private func someFunc(inout someString: String) {
    print("Inside \'someFunc()\'")

    print(someString)
    someString = "Some another string"
}

private var someAncillaryInt = 42

print(someAncillaryInt)

private var someString: String {
    get {
        print("Inside \'getter\'")

        return "Some string"
    }
    set {
        print("Inside \'setter\'")
        someAncillaryInt = 24
    }
}

someFunc(&someString)
print(someAncillaryInt)

Выход:

42

Внутри "добытчик"

Внутри someFunc ()

Некоторая строка

Внутри «сеттер»

24

Я не понимаю, почему не былодобытчик вызывается во время печатиsomeString внутриsomeFunc() и почему это было когдаsomeFunc() прошло сsomeString.

Можно предположить, что я не понимаю тонкостейINOUT параметры еще и после того, как передаются какINOUT Свойство параметра computed перестает быть, например, «computed», но почему тогда вызывается «setter», когда мы устанавливаем другое значение вsomeString?

Спасибо!

UPD: Я добавил ответ ниже.

ОБНОВЛЕНИЕ 18/11/2015: Apple обновила своируководство с подробным объяснением того, как работает inout params.

Ответы на вопрос(3)

Ваш ответ на вопрос