Swift:调用参数可能为零的函数

Mag*_*nus 1 ios swift

我想弄清楚Swift中最后一行是否有更短的语法:

var startPosition: CLLocationCoordinate2D?
var latitude: Double?
var longitude: Double?
// ...
// Here I have skipped some code which may or may not assign values
// to "latitude" and "longitude".
// ...
if latitude != nil && longitude != nil {
    startPosition = CLLocationCoordinate2DMake(latitude!, longitude!)
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我想基于"纬度"和"经度"设置"startPosition",如果已经分配了这些值.否则,我接受"startPosition"将不会被初始化.

我想这可能是"如果让"或类似的东西,但我没有弄清楚如何.(我在Objective-C方面很有经验,但刚刚开始学习Swift.)

gre*_*ner 6

这不短,但你可以做到

if let latitude = latitude, let longitude = longitude {
     startPosition = CLLocationCoordinate2D(latitude: latitude,
                                        longitude: longitude)
}
Run Code Online (Sandbox Code Playgroud)

注意我只使用了CLLocationCoordinate2D,而不是CLLocationCoordinate2DMake.Swift为大多数常见对象提供没有"make"的构造函数,因此通常不必在构造函数中使用"make".