美文网首页
Day3 基本运算符(Basic Operators)

Day3 基本运算符(Basic Operators)

作者: 平凡之路561 | 来源:发表于2017-06-01 10:58 被阅读0次

    算术运算符: + - * /

    求余运算符: %

    组合赋值运算符: +=
    表达式 a += 2 是 a = a + 2 的简写

    比较运算符(Comparison Operators)

    • 等于( a == b )
    • 不等于( a != b )
    • 大于( a > b )
    • 小于( a < b )
    • 大于等于( a >= b )
    • 小于等于( a <= b )

    三目运算符(Ternary Conditional Operator)
    问题 ? 答案 1 : 答案 2 。
    如果问题成立,返回 答案 1 的结果;反之返回 答案 2 的结果。

    空合运算符(Nil Coalescing Operator)

    空合运算符( a ?? b )将对可选类型 a 进行空判断,如果 a 包含一个值就进行解封,否则就返回一
    个默认值 b 。表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。
    空合运算符是对以下代码的简短表达方法:
    a != nil ? a! : b

    区间运算符(Range Operators)
    闭区间运算符(a...b)定义一个包含从a到 b(包括 a和 b)的所有值的区间
    半开区间运算符(a..<b)定义一个从a到b 包含第一个值而不包括最后的值。

    逻辑运算符(Logical Operators)

    •逻辑非(!a)
    • 逻辑与(a&&b)
    • 逻辑或(a||b)

    注意: Swift 逻辑操作符 && 和 || 是左结合的,这意味着拥有多元逻辑操作符的复合表达式优先计
    算最左边的子表达式。但可以使用括号来明确优先级

    字符串和字符(Strings and Characters)

    • 初始化空字符串

    <pre>var emptyString = "" // 空字符串字面量
    var anotherEmptyString = String() // 初始化方法
    // 两个字符串均为空并等价</pre>

    您可以通过检查其 Bool 类型的 isEmpty 属性来判断该字符串是否为空:

    <pre>if emptyString.isEmpty {
    print("Nothing to see here")
    }
    // 打印输出:"Nothing to see here"</pre>

    • 遍历字符串

    <pre>for character in "Dog!?".characters {
    print(character)
    }
    // D
    // o
    // g
    // !
    // ?</pre>

    连接字符串和字符

    字符串可以通过加法运算符( + )相加在一起(或称“连接”)创建一个新的字符串:

    <pre>let string1 = "hello"
    let string2 = " there"
    var welcome = string1 + string2
    // welcome 现在等于 "hello there"</pre>

    您也可以通过加法赋值运算符 ( += ) 将一个字符串添加到一个已经存在字符串变量上:

    <pre>var instruction = "look over"
    instruction += string2
    // instruction 现在等于 "look over there"</pre>

    您可以用 append() 方法将一个字符附加到一个字符串变量的尾部:

    <pre>let exclamationMark: Character = "!"
    welcome.append(exclamationMark)
    // welcome 现在等于 "hello there!"</pre>

    字符串插值

    字符串插值是一种构建新字符串的方式,可以在其中包含常量、变量、字面量和表达式。您插入的字符串字面量的每一项都在以反斜线为前缀的圆括号中:

    <pre>let multiplier = 3
    let message = "(multiplier) times 2.5 is (Double(multiplier)x2.5)"
    // message 是 "3 times 2.5 is 7.5"</pre>
    在上面的例子中, multiplier 作为 (multiplier) 被插入到一个字符串常量量中。 当创建字符串执行插值计算时此占位符会被替换为 multiplier 实际的值。

    Unicode

    字符串字面量可以包含以下特殊字符:
    • 转义字符 \0 (空字符)、 \ (反斜线)、 \t (水平制表符)、 \n (换行符)、 \r (回车符)、 " (双引 号)、 ' (单引号)。

    访问和修改字符串

    你可以通过字符串的属性和方法来访问和修改它,当然也可以用下标语法完成。
    每一个值都有一个关联的索引(index)类型,String.Index, 它对应着字符串中的每一个的位置。

    你可以使用下标语法来访问 String 特定索引的 Character。
    <pre>
    let greeting = "Guten Tag!"
    greeting[greeting.startIndex]
    // Ggreeting[greeting.index(before: greeting.endIndex)]
    // !greeting[greeting.index(after: greeting.startIndex)]
    // ulet index = greeting.index(greeting.startIndex, offsetBy: 7)greeting[index]
    // a</pre>
    使用 characters 属性的 indices 属性会创建一个包含全部索引的范围(Range),用来在一个字符串中访问单个字符。

    插入和删除
    调用 insert(_:at:)调用
    remove(at:)

    比较字符串

    Swift 提供了三种方式来比较文本值:字符串字符相等、前缀相等和后缀相等。

    字符串/字符可以用等于操作符( == )和不等于操作符( != )通过调用字符串的 hasPrefix(:) / hasSuffix(:) 方法来检查字符串是否拥有特定前缀/后缀

    <pre>let romeoAndJuliet = [
    "Act 1 Scene 1: Verona, A public place",
    "Act 1 Scene 2: Capulet's mansion",
    "Act 1 Scene 3: A room in Capulet's mansion",
    "Act 1 Scene 4: A street outside Capulet's mansion",
    "Act 1 Scene 5: The Great Hall in Capulet's mansion",
    "Act 2 Scene 1: Outside Capulet's mansion",
    "Act 2 Scene 2: Capulet's orchard",
    "Act 2 Scene 3: Outside Friar Lawrence's cell",
    "Act 2 Scene 4: A street in Verona",
    "Act 2 Scene 5: Capulet's mansion",
    "Act 2 Scene 6: Friar Lawrence's cell"
    ]</pre>

    您可以调用 hasPrefix(_:) 方法来计算话剧中第一幕的场景数:

    <pre>var act1SceneCount = 0
    for scene in romeoAndJuliet {
    if scene.hasPrefix("Act 1 ") {
    act1SceneCount += 1
    } }
    print("There are (act1SceneCount) scenes in Act 1")
    // 打印输出 "There are 5 scenes in Act 1"</pre>

    相似地,您可以用 hasSuffix(_:) 方法来计算发生在不同地方的场景数:
    <pre>var mansionCount = 0
    var cellCount = 0
    for scene in romeoAndJuliet {
    if scene.hasSuffix("Capulet's mansion") {
    mansionCount += 1
    } else if scene.hasSuffix("Friar Lawrence's cell") {
    cellCount += 1
    }
    }
    print("(mansionCount) mansion scenes; (cellCount) cell scenes")
    // 打印输出 "6 mansion scenes; 2 cell scenes"</pre>

    相关文章

      网友评论

          本文标题:Day3 基本运算符(Basic Operators)

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