IIFE(立即调用的函数表达式)是 JavaScript 中常用的模式。Swift 似乎也支持这种模式。如下所示:
let one = { 1 }
/// one: () -> Int
显式类型声明和常量返回的函数可以很好地工作。
let one:Int = { $0 }(1)
/// one: Int
但常数返回函数无法推断其自身类型。
let one = { $0 }(1)
/// SourceKitService
/// Terminated
///
/// Editor functionality
/// temporarily limited.
我需要像在shell中一样强制运行它。
// inferred.swift
#!/usr/bin/xcrun swift
var i:Int = 0
let id = { $0 }(i)
println(id)
当出现文本“Whemphasized textile silgen closureexpr SIL function @_TF8inferredU_FRSiSi for expression at [./inferred.swift:4:10 - line:4:15] RangeText="{ $0 }"”时,发生了段错误。[1] 29364 ./inferred.swift
我是否遗漏了些内容或者语法有误?