美文网首页
swift学习记录

swift学习记录

作者: 掉了西红柿皮_Kee | 来源:发表于2020-07-05 10:22 被阅读0次
    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并不满足语法条件,因此报错。

    相关文章

      网友评论

          本文标题:swift学习记录

          本文链接:https://www.haomeiwen.com/subject/szgmqktx.html