swift学习记录

2020-07-05  本文已影响0人  掉了西红柿皮_Kee
  1. 关于不同数据类型之间的比较
//执行以下代码则会直接报错
let a = 5
let b: Float = 8
if a < b
{
    print("succeed")
}

swift:4:6: error: binary operator '<' cannot be applied to operands of type 'Int' and 'Float'
因为在初始化的时候,a的初始值为5,虽然未显式的指定Int类型,但由于初始化的数据类型为Int,因此a的数据类型可推断为Int。而b的数据类型被显式的指定为Float,虽然初始值写做 8,但其类型被强制转换。因此不同类型之间无法进行比较。

  1. 关于if表达式
// 输出结果: "hello, 22453"
var name: String? = "22453"
var greeting = "hello"
if let n = name
{
    greeting = "hello, \(n)"
}else
{
    greeting = "hello, another option"
}
print(greeting)

注意if的表达式,if let n=name。在我的理解里,他应该等价于先判断name是否为nil,如果不是nil则执行let n = name
如果将代码直接写成先赋值let n = name,之后执行判断语句if n {},然后开始报错:
swift:15:4: error: optional type 'String?' cannot be used as a boolean; test for '!= nil' instead if n ^ ( != nil)
按照提示,判断语句后面需要补充的是一个布尔表达式即if n != nil,而 n并不满足语法条件,因此报错。

上一篇下一篇

猜你喜欢

热点阅读