为何Xcode未受显式指派便自动将Integer转换为Float?
关于Swift元组在Playground中显示为浮点数的解决办法
嘿,别担心~作为Swift新手遇到这种小困惑太正常啦!我来帮你捋捋可能的原因和解决办法:
检查代码中是否混入浮点数元素:Swift的类型推断很聪明,如果你的元组里哪怕有一个元素是带小数点的浮点数(比如
2.0),整个元组的对应位置甚至所有元素都会被推断成浮点数类型。比如你写了:let scoreTuple = (95, 88.5)那第一个
95也会被自动转成Double类型,Playground里显示的时候就会变成95.0。显式指定元组的整数类型:如果想强制元组保持整数类型,可以在定义的时候明确标注类型,比如:
let scoreTuple: (Int, Int) = (95, 88)这样不管你后续怎么操作(只要不做自动转浮点数的运算),元组里的元素都会保持
Int类型,Playground显示的就是整数啦。排查是否有隐式类型转换的操作:比如如果元组里的元素是通过计算得到的,比如包含除法(比如把
4 / 2写成了4.0 / 2),或者和浮点数变量做了运算,结果也会变成浮点数。仔细对照书中的代码,看看是不是哪里漏看了细节~
慢慢来,Swift的类型系统需要一点点适应,你已经很棒啦!
内容的提问来源于stack exchange,提问作者Firespray
相关产品推荐
相关产品推荐

