问题描述
当我编写在SwiftPlayground上运行的代码时,出现了此编译错误:“编译器无法在合理的时间内对该表达式进行类型检查”
public func toPlaygroundValue() -> PlaygroundValue {
let dict: [:] = [
"pitch": .floatingPoint(Double(pitch)),"roll": .floatingPoint(Double(roll)),"yaw": .floatingPoint(Double(yaw)),"vgx": .floatingPoint(Double(vgx)),"vgy": .floatingPoint(Double(vgy)),"vgz": .floatingPoint(Double(vgz)),"tof": .floatingPoint(Double(tof)),"h": .floatingPoint(Double(h)),"bat": .integer(bat),"baro": .floatingPoint(Double(baro)),"time": .floatingPoint(Double(time)),"agx": .floatingPoint(Double(agx)),"agy": .floatingPoint(Double(agy)),"agz": .floatingPoint(Double(agz)),"marker": PlaygroundValue.dictionary([
"id": .integer(marker.id),"x": .floatingPoint(Double(marker.x)),"y": .floatingPoint(Double(marker.y)),"z": .floatingPoint(Double(marker.z)),]),"temp": PlaygroundValue.dictionary([
"temph": .integer(temp.temph),"templ": .integer(temp.templ),"mpry":PlaygroundValue.dictionary([
"x": .floatingPoint(Double(mpry.x)),"y": .floatingPoint(Double(mpry.y)),"z": .floatingPoint(Double(mpry.z)),"sn": .string(sn),]
let value: PlaygroundValue = PlaygroundValue.dictionary(dict)
return value
}
解决方法
为变量提供数据类型可能会有所帮助: 使用let dict:[String:PlaygroundValue] = [...]而不是let dict:[:] = [...]