Учитывая следующий класс в swift:
public class Foo {
public init () { }
public subscript (index: Int) -> Int {
get {
return index
}
}
public func intIdentity (val: Int) -> Int {
get {
return val
}
}
}
Очевидно, что я могу получить доступ к intIdentity
как замыкание, используя что-то вроде этого:
let foo = Foo()
let clos = foo.intIdentity
print (clos (7)) // -> 7
Кроме того, я знаю, что могуоберните его в замыкание следующим образом:
let foo = Foo()
let clos = { (x:Int)->Int in return foo[x] }
print (clos (42)) // -> 42
Как получить прямой доступ к нижнему индексу в качестве замыкания?Разве это невозможно, потому что, хотя нижний индекс является синтаксическим сахаром поверх одной или двух функций, они неявны и не могут быть доступны явно?