如何同时专门化泛型和测试可选作为单行?

How to simultaneously specialize a generic and test for optional as a single line?

有没有办法在一行中专门化泛型并测试可选的?换句话说,将第 1 行和第 2 行 I- 作为单行代码?

func getTo<T>() -> T? {

    // Real code here replaced by setting nil for clarity
    nil
}



// Working version


// Line #1
let _r: [Any]? = getTo()

// Line #2
if let r = _r { 

    for e in r {
        print ("\(e)")
    }

}

// Not working single line version

// Single line
if let r: [Any]? = getTo() {

    // Error here: error: for-in loop requires '[Any]?' to conform to 'Sequence'; did you mean to unwrap optional?
    //for e in r {
    //         ^

    for e in r {
        print ("\(e)")
    }
}

PS: 抱歉,初始代码被截断了。

是的。这有效:

guard let r: [Any] = getTo(breadcrumbs: ["here"]) else {
    return nil
}