我想弄清楚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.)
这不短,但你可以做到
if let latitude = latitude, let longitude = longitude {
startPosition = CLLocationCoordinate2D(latitude: latitude,
longitude: longitude)
}
Run Code Online (Sandbox Code Playgroud)
注意我只使用了CLLocationCoordinate2D,而不是CLLocationCoordinate2DMake.Swift为大多数常见对象提供没有"make"的构造函数,因此通常不必在构造函数中使用"make".
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |