澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

澳门新萄京官方网站Swift学习笔记,基本运算符

2019-07-14 作者:www.8455.com   |   浏览(190)

本章将会介绍

主导运算符
字符串和字符

斯威夫特 对空格有须要。

澳门新萄京官方网站 1

 

着力运算符

运算符是检查、改换、合併值的特殊符号或短语。比方,加号( )将三个数相加(如 let i = 1 2)。更目迷五色的演算例子富含逻辑与运算符 &&(如 if enteredDoorCode && passedRetinaScan)。

斯威夫特 支持大部分规范 C 语言的运算符,且创新大多表征来缩短常规编码错误。如:赋值符(=)不重临值,以免守把想要决断相等运算符(==)的地点写成赋值符导致的错误。算术运算符( ,-,*,/,%等)会检查实验并不允许值溢出,以此来幸免保存变量时出于变量大于或小于其项目所能承载的界定时产生的老大结果。当然允许你选取斯维夫特 的溢出运算符来完毕溢出。

Swift 还提供了 C 语言未有的表明两数以内的值的间隔运算符(a..<b 和 a...b),那便于大家表明贰个间距内的数值。

斯维夫特数据类型

  • Int 相当于NSInteger,依照差别平台有例外的长短。
  • 无符号类型UInt,尽量不要选择UInt。
  • 浮点数,Double(六十二位浮点数),Float(叁九个人浮点数)。
  • 布尔值,Swift有三个为主的布尔(Boolean)类型,叫做Bool。有多少个布尔常量true,和False。在OC中为YES,NO.
  • 字符串,String,OC中对应为NSString。
  • 字符,Character,即单个字母。OC中对应该为Char。
  • 可选类型,Optional,用来管理值或许缺点和失误的图景。表示有值或从不值

一.Swift字符串

Swift字符串是一密密麻麻字符的集聚,举个例子:“Hello world!”那样的的静止字符类型的值的会集,它的数据类型String。

学学地点:    或    

1. 赋值运算符

连串外号

typealias,对当下类型定义另叁个名字。typealias newStr = String

1.创建字符串

您能够经过应用字符串字面量或String类的实力来创建几个字符串:

//使用字符串字面量
var stringA = "Hello world!"
print(stringA)

//String实例化
var stringB = String("Hello world!")
print(stringB)

如上程序实行输出结果为:

Hello world!
Hello world!
  1. 一经制造的是 OS X playground 须要引进 Cocoa;  借使大家想创造 iOS playground 则须要引入UIKit .

  2. Samsung或iTouch的宽为320像素,高为480像素,状态栏高为20像素,toobar高为44像素,tabbar高为49像素,导航栏高为44像素。

  3. typealias:类型外号对现阶段的类型定义了另二个名字;

  4. Swfit语言定义后缀?作为命名类型Optional(可选)的简写;

2. 算术运算符 - * /

类别安全

type safe,斯威夫特会在编写翻译代码时实行项目检查(type checks)

2.空字符串

你能够使用空的字符串字面量赋值给变量或初步化一个String类的实例来开头值贰个空的字符串。大家能够利用字符串属性isEmpty来推断字符串是或不是为空:

//使用字符串字面量创建空字符串
var stringA = ""
if stringA.isEmpty {
    print("StringA 是空的")
} else {
    print("StringB 不是空的")
}

//实例化String类来创建空字符串
let stringB = String()
if stringB.isEmpty {
    print("stringB 是空的")
} else {
    print("stringB 不是空的")
}

如上程序的实施输出结果为:

stringA 是空的
stringB 是空的
    var optionalInteger: Int?
    //或者
    var optionalInteger: Optional<Int>
3. 求余运算符(取模运算符) %

花色揣度

若无展现钦点项目,斯维夫特会使用项目推测(type inference)来抉择适用的种类。浮点数会事先揣摸为Double。

3.字符串常量

您能够将一个字符串赋值给三个变量或常量,变量是可修改的,常量是不行修改的。

//stringA 可被修改
var stringA = "Apple"
stringA   = "http://www.apple.com"
print(stringA)

//stringB 不能修改
let stringB = String("Apple")
stringB  = "http://www.apple.com"
print(stringB)

如上程序实施输出结果会报错,以为stringB为常量是不能够被涂改的:

error: left side of mutating operator isn't mutable: 'stringB' is a 'let' constant
stringB  = "http://www.apple.com"
  1. 强制剖判:当你规定可选类型确实包蕴值之后,你可以在可选的名字背后加一个惊讶号(!)来赢得值。
4. 一元负号运算符 -

Swift可选类型

Swift使用 ? 作为命名类型Optional的简写,Optional是三个包罗二种情状的枚举,None和Some(T),用来代表大概或或许未有值。任何类型都足以评释或隐式转变为可选类型,注解时要力保给操作符一个适当的范围。类型和?之间向来不空格。以下二种方法极度。

var optionalInt: Int?
var optionalInt2: Optional<Int>

宣示可选变量如未给定伊始值,默感到nil。

4.字符串中插入值

字符串插值是一种创设新字符串的措施,能够在当中积攒常量、变量、字面量和表明式。您能够插入的字符串字面量的每一类都在以反斜线为前缀的圆括号中:

var varA = 20
let constA = 100
var varC : Float = 20.0
var stringA = "(varA)乘于(constA)等于(varC * 100)"
print(stringA)

如上程序施行输出结果为:

20乘于100等于2000.0
    var myString:String?
        myString = "Hello, Swift!"
        if myString != nil {
           // 强制解析
            print( myString! )
        } else {
           print("myString 值为 nil")
        }

注意:使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值。
5. 一三朝号运算符

强制深入分析

当使用操作符注脚时,假若鲜明可选类型包罗值四个非nil值,能够在变量前边加上!来强制深入分析(forced unwrapping)。借使值为nil则会导致运转时不当。

5.字符串连接

字符串能够通过 号来连接,实比如下:

let constA = “Apple:”
let constB = “http://www.apple.com”
var stringA = constA   constB
print(stringA)

如上程序实施输出结果为:

Apple:http://www.apple.com
  1. 机关深入分析:你能够在宣称可选变量时选用惊讶号(!)替换问号(?)。
6. 整合赋值运算符 =

活动分析

声称可选变量时,使用!替换澳门新萄京官方网站Swift学习笔记,基本运算符。,那样在分析可选变量时就足以绝不增加!,以促成全自动深入分析。

6.字符串长度

字符串长度使用String.characters.count属性来计算,实举个例子下:

var varA = "www.apple.com"
print("(varA),长度为(varA.characters.count)")

上述程序实施输出结果为:

www.apple.com
    var myString:String!
        myString = "Hello, Swift!"
        if myString != nil {
            print(myString)
        } else {
           print("myString 值为 nil")
        }
7. 比较运算符 == != > < >= <= === !==

瞩目: Swift也提供恒等(===)和不恒等(!==)那多少个相比较符来判定七个指标是否援用同多个对象实例。

当元组中的值能够相比时,你也得以使用这几个运算符来相比较它们的分寸。比如,因为 Int 和 String 类型的值能够比较,所以类型为 (Int, String) 的元组也得以被相比较。相反,Bool 不可能被相比较,也意味着存有布尔类型的元组不可能被比较。
正如元组大小会依据从左到右、逐值相比的办法,直到开采有多个值不等时停下。若是持有的值都等于,那么这一对元组大家就称它们是相等的。比方:

(1, "zebra") < (2, "apple")   // true,因为 1 小于 2
(3, "apple") < (3, "bird")    // true,因为 3 等于 3,但是 apple 小于 bird
(4, "dog") == (4, "dog")      // true,因为 4 等于 4,dog 等于 dog

在下边的事例中,你能够看看,在率先行中从左到右的相比行为。因为1小于2,所以(1, "zebra")小于(2, "apple"),不管元组剩下的值怎么。所以"zebra"小于"apple"未有任何影响,因为元组的比较已经被第贰个因素决定了。可是,当元组的首先个因素同样期候,第一个要素将会用作比较-第二行和第三行代码就生出了那般的可比。

注意:
Swift规范库只可以比非常多个以内成分的元组相比较函数。如若您的元组成分当先八个时,你须要和谐达成比较运算符。

可选绑定�

选拔可选绑定(optional binding)来决断可选类型是还是不是富含值,假若含有就把值复制给一个临时常量或变量。eg:

// 可选绑定
if let myInt = optionalInt {
    print(myInt)
}

7.字符串相比

您能够透过动用“==”来相比四个字符串是或不是等于:

var varA = "Hello Swift!"
var varB = "Hello World"
if varA == varB {
   print("(varA)与(varB)是相等的")
} else {
   print("(varA)与(varB)是不相等的")
}

以上程序推行输出结果为:

Hello Swift!与Hello World!是不相等的
  1. 可选绑定:使用可选绑定(optional binding)来推断可选类型是或不是带有值,假设含有就把值赋给一个不常常量只怕变量。
8. 三目运算符

三目运算符的例外在于它是有多少个操作数的运算符,它的款式是 难题 ? 答案 1 : 答案 2。它简洁地球表面述遵照 难题成立与否作出二选一的操作。如若 难题制造,再次回到 答案 1 的结果;反之再次来到 答案 2 的结果。

Swift 常量�

Swift常量使用主要字let宣称,必须初阶值。let constantName = <initial value>

8.Unicode字符串

Unicode是三个国际标准,用于文书的编码,Swift的String类型是基于Unicode创设。你能够循环迭代出字符串中UTF-8与UTF-16的编码,实比方下:

var unicodeString   = "Apple"
print("UTF-8 编码: ")
for code in unicodeString.utf8 {
   print("(code) ")
}

print("n")
print("UTF-16 编码: ")
for code in unicodeString.utf16 {
   print("(code) ")
}

上述程序奉行输出结果为:

UTF-8 编码: 
232 
143 
156 
233 
184 
159 
230 
149 
153 
231 
168 
139 

UTF-16 编码: 
33756 
40479 
25945 
31243 
    if let constantName = someOptional {
            statements
       }
    // example :
       var myString : String?
       myString = "Hello, Swift!"
       if let yourString = myString {
           print("你的字符串值为 - (yourString)")
       } else {
           print("你的字符串没有值")
       }
9. 空合运算符(Nil Coalescing Operator) a??b

空合运算符(a ?? b)将对可选类型 a 进行空判定,假若 a 包括三个值就开展解封,不然就赶回贰个暗中认可值 b。表明式 a 必须是 Optional 类型。暗中认可值 b 的品种必须求和 a 存储值的品种保持一致。
空合运算符是对以下代码的大约表达方法:

a != nil ? a! : b

上述代码应用了三目运算符。当可选类型 a 的值不为空时,进行强制解封(a!),访谈 a 中的值;反之再次回到暗许值 b。无疑空合运算符(??)提供了一种尤其优雅的措施去封装条件判定和平化解封二种表现,显得简洁以及更具可读性。

注意: 如果 a 为非空值(non-nil),那么值 b 将不会被计算。这也就是所谓的短路求值。

下边例子选择空合运算符,落成了在暗中认可颜色名和可选自定义颜色名之间接纳:

let defaultColorName = "red"
var userDefinedColorName: String?   //默认值为 nil

var colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName 的值为空,所以 colorNameToUse 的值为 "red"

userDefinedColorName 变量被定义为四个可选的 String 类型,私下认可值为 nil。由于 userDefinedColorName 是一个可选类型,大家能够利用空合运算符去剖断其值。在上二个事例中,通过空合运算符为三个名为colorNameToUse 的变量赋予三个字符串类型伊始值。 由于 userDefinedColorName 值为空,因而表明式 userDefinedColorName ?? defaultColorName 重临 defaultColorName 的值,即 red。

另一种状态,分配贰个非空值(non-nil)给 userDefinedColorName,再一次实践空合运算,运算结果为封包在 userDefaultColorName 中的值,而非私下认可值。

userDefinedColorName = "green"
colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName 非空,因此 colorNameToUse 的值为 "green"

项目注解

声称贰个常量也许变量时候能够挑选丰裕项指标注(type annotation),用于评释常量或许变量中要存款和储蓄的值的项目。使用格局为在常量可能变量后增加冒号空格,然后加上项目名称。 var constantName: <data type> = <optional initial value>

7.字符串函数及运算符

Swift扶助一下两种字符串函数及运算符:

  1. 整型字面量能够是二个十进制,二进制,八进制或十六进制常量。 二进制前缀为 0b,八进制前缀为 0o,十六进制前缀为 0x,十进制未有前缀

    let decimalInteger = 17           // 17 - 十进制表示
    let binaryInteger = 0b10001       // 17 - 二进制表示
    let octalInteger = 0o21           // 17 - 八进制表示
    let hexadecimalInteger = 0x11     // 17 - 十六进制表示
    
  2. 注意:Swift中的字母选用的是Unicode编码[1]。Unicode叫做统一编码制,它富含了南美洲文字编码,如中文、英文、法语等字符,以致是我们在聊天工具中应用的表情符号
    倘若应当要选拔首要字作为标记符,能够在根本字上下增添重音符号(`)

  3. 浮点型字面量的私下认可推导类型为 Swift 规范库类型中的 Double,表示陆十二人浮点数。
    十进制浮点型字面量 :1.25e2 表示 1.25 ⨉ 10^2,相当于125.0;同样,1.25e-2 表示 1.25 ⨉ 10^-2,相当于 0.0125。
    十六进制浮点型字面量:0xFp2 表示 15 ⨉ 2^2,也正是 60;同样,0xFp-2 表示 15 ⨉ 2^-2,也便是 3.75。
    eg:   浮点型字面量允许采纳下划线 _ 来加强数字的可读性,下划线会被系统忽略,因而不会影响字面量的值。一样地,也足以在数字前加 0,并不会听得多了就能说的详细字面量的值。

  4. 字符串型字面量:
10.区间运算符(Range Operators)
  • 闭区间运算符

闭区间运算符(a...b)定义壹个带有从 a 到 b(包涵 a 和 b)的全体值的距离。a 的值不能够超越 b。 ‌ 闭区间运算符在迭代贰个间距的装有值时是极度实惠的,如在 for-in 循环中:

for index in 1...5 {
    print("(index) * 5 = (index * 5)")
}
// 1 * 5 = 5
// 2 * 5 = 10
// 3 * 5 = 15
// 4 * 5 = 20
// 5 * 5 = 25
  • 半开区间运算符

半开区间运算符(a..<b)定义三个从 a 到 b 但不包涵 b 的间距。 之所以称为半开区间,是因为该距离涵盖第四个值而不富含最后的值。

半开区间的实用性在于当您采用二个从 0 初阶的列表(如数组)时,特别便于地从0数到列表的尺寸。

let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
    print("第 (i   1) 个人叫 (names[i])")
}
// 第 1 个人叫 Anna
// 第 2 个人叫 Alex
// 第 3 个人叫 Brian
// 第 4 个人叫 Jack

数组有 4 个要素,但 0..<count 只数到3(倒数成分的下标),因为它是半开区间。

输出

Swift中使用print轮换了本来的println函数来输出常量和变量。在字符串中得以选用()来插入常量和变量。

1.isEmpty

看清字符串是或不是为空,重返布尔值。

<table>
<thead>
<tr class="header">
<th>转移字符</th>
<th>含义</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td></td>
<td>空字符</td>
</tr>
<tr class="even">
<td>\</td>
<td>反斜线 </td>
</tr>
<tr class="odd">
<td>b</td>
<td>退格(BS) ,将当前位置移到前一列</td>
</tr>
<tr class="even">
<td>f</td>
<td>换页(FF),将当前位置移到下页开头</td>
</tr>
<tr class="odd">
<td>n</td>
<td>换行符</td>
</tr>
<tr class="even">
<td>r</td>
<td>回车符</td>
</tr>
<tr class="odd">
<td>t</td>
<td>水平制表符</td>
</tr>
<tr class="even">
<td>v</td>
<td>垂直制表符</td>
</tr>
<tr class="odd">
<td>'</td>
<td>单引号</td>
</tr>
<tr class="even">
<td>&quot;</td>
<td>双引号</td>
</tr>
<tr class="odd">
<td>00</td>
<td>1到3位八进制数所代表的任意字符</td>
</tr>
<tr class="even">
<td>xhh...</td>
<td>1到2位十六进制所代表的任意字符</td>
</tr>
</tbody>
</table>
11.逻辑运算符(Logical Operators)

逻辑运算符的操作对象是逻辑布尔值

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

Swift字面量

字面量:能够直接了当的建议本人的项目并为变量进行赋值的值,如整型字面量、浮点型字面量、字符串型字面量和布尔型字面量。

字符串型字面量的转义

转义字符 含义
空字符
反斜线
b 退格(BS) , 将当前位置移到前一列
f 换页(FF),将当前位置移到下页开头
n 换行符
r 回车符
t 水平制表符
v 垂直制表符
' 单引号
" 双引号
00 1到3位八进制数所代表的任意字符
xhh... 1到2位十六进制所代表的任意字符

布尔型字面量暗中认可类型为Bool,包括四个值:true , false , nil

2.hasPrefix(prefix: String)

反省字符串是或不是享有特色的前缀。

  1. 位运算符:位运算符用来对二进制位举行操作,~,&,|,^分别为取反,按位与与,按位与或,按位与异或运算,如下表实例:

    p q p & q p | q p ^ q
    0 0 0 0 0
    0 1 0 1 1
    1 1 1 1 0
    1 0 0 1 1
    指定  A = 0011 1100      ;   B = 0000 1101
    
    运算符 描述 图解 实例
    & 按位与。按位与运算符对两个数进行操作,然后返回一个新的数,这个数的每个位都需要两个输入数的同一位都为1时才为1。 (A & B) 结果为 12, 二进制为 0000 1100
    | 按位或。按位或运算符|比较两个数,然后返回一个新的数,这个数的每一位设置1的条件是两个输入数的同一位都不为0(即任意一个为1,或都为1)。 (A | B) 结果为 61, 二进制为 0011 1101
    ^ 按位异或. 按位异或运算符^比较两个数,然后返回一个数,这个数的每个位设为1的条件是两个输入数的同一位不同,如果相同就设为0。 (A ^ B) 结果为 49, 二进制为 0011 0001
    ~ 按位取反运算符~对一个操作数的每一位都取反。 (~A ) 结果为 -61, 二进制为 1100 0011 in 2's complement form.
    << 按位左移。左移操作符(<<)将操作数的所有位向左移动指定的位数。

    下图展示了11111111 << 1(11111111 左移一位)的结果。蓝色数字表示被移动位,灰色表示被丢弃位,空位用橙色的0填充。

    A << 2 结果为 240, 二进制为 1111 0000
    >> 按位右移。右移操作符(<<)将操作数的所有位向又移动指定的位数。

    下图展示了11111111 >> 1(11111111 右移一位)的结果。蓝色数字表示被移动位,灰色表示被丢弃位,空位用橙色的0填充。

    A >> 2 结果为 15, 二进制为 0000 1111
  2. 赋值运算:

    运算符 描述 实例
    = 简单的赋值运算,指定右边操作数赋值给左边的操作数。 C = A B 将 A B 的运算结果赋值给 C
    = 相加后再赋值,将左右两边的操作数相加后再赋值给左边的操作数。 C = A 相当于 C = C A
    -= 相减后再赋值,将左右两边的操作数相减后再赋值给左边的操作数。 C -= A 相当于 C = C - A
    *= 相乘后再赋值,将左右两边的操作数相乘后再赋值给左边的操作数。 C *= A 相当于 C = C * A
    /= 相除后再赋值,将左右两边的操作数相除后再赋值给左边的操作数。 C /= A 相当于 C = C / A
    %= 求余后再赋值,将左右两边的操作数求余后再赋值给左边的操作数。 C %= A 相当于 C = C % A
    <<= 按位左移后再赋值 C <<= 2 相当于 C = C << 2
    >>= 按位右移后再赋值 C >>= 2 相当于 C = C >> 2
    &= 按位与运算后赋值 C &= 2 相当于 C = C & 2
    ^= 按位异或运算符后再赋值 C ^= 2 相当于 C = C ^ 2
    |= 按位或运算后再赋值 C |= 2 相当于 C = C | 2
  3. 距离运算符:

    运算符 描述 实例
    闭区间运算符 闭区间运算符(a...b)定义一个包含从a到b(包括a和b)的所有值的区间,b必须大于等于a。 ‌ 闭区间运算符在迭代一个区间的所有值时是非常有用的,如在for-in循环中: 1...5 区间值为 1, 2, 3, 4 和 5
    半开区间运算符 半开区间(a..<b)定义一个从a到b但不包括b的区间。 之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值。<="" td=""> 1..< 5 区间值为 1, 2, 3, 和 4
  4. 三目运算符:(a ? b : c) -- 如果a为true,值为b,否则为c.

12.应用括号来分明优先级

Swift运算符

运算符是一个标志,用户告知编译器施行三个数学或逻辑运算。包蕴

  • 算数运算符
  • 正如运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 间隔运算符(闭区间运算符:...。 半开区间运算符:..<。)
  • 其余运算符(一元加、一元减、莫斯利安运算符)
3.hasSuffix(suffix:String)

自笔者商议字符串是还是不是具有一定后缀。

  • 指南针最优,单目运算优于双目运算。如正负号。
  • 先乘除(模),后加减。
  • 先算术运算,后移动运算,最终位运算。请非常注意:1 << 3 2 & 7 等价于 (1 << (3 2))&7
  • 逻辑运算最终总结
    运算符类型 运算符 结合方向
    表达式运算 () [] . expr expr-- 左到右
    一元运算符

    * & - ! ~ expr --expr

    * / %

    -

    >> <<

    < > <= >=

    == !=

    右到左
    位运算符

    &

    ^

    |

    &&

    ||

    左到右
    三元运算符 ?: 右到左
    赋值运算符 = = -= *= /= %= >>= <<= &= ^= |= 右到左
    逗号 , 左到右

字符串和字符

字符串是比方说"hello, world","albatross"那样的稳步的Character(字符)类型的值的成团。通过String类型来代表。 贰个String的内容能够用数不清方法读取,蕴含作为叁个Character值的集结。

Swift 的String和Character类型提供了长足和合营 Unicode 的艺术供您的代码应用。创立和操作字符串的语法与 C 语言中字符串操作相似,轻量并且易读。 字符串连接操作只必要轻巧地通过 符号将多个字符串相连就能够。与 Swift中其余值同样,能不能改换字符串的值,取决于其被定义为常量依然变量。你也能够在字符串内插进度中运用字符串插入常量、变量、字面量表达成更加长的字符串,这样能够很轻松的创设自定义的字符串值,进行展现、存款和储蓄以及打字与印刷。

纵然语法简易,但String类型是一种高效、今世化的字符串完毕。 每多个字符串都以由编码非亲非故的 Unicode 字符组成,并协助访谈字符的多样Unicode 表示情势(representations)。

注意:
Swift 的String类型与 Foundation NSString类进行了无缝桥接。Foundation 也足以对String举行扩展,揭穿在NSString中定义的格局。 那象征,假使你在String中调用那么些NSString的法子,将绝不进行转移。

斯维夫特条件语句

语句 描述
if 语句 if 语句由一个布尔表达式和一个或多个执行语句组成。
if...else语句 if 语句后可以有可选的 else 语句, else 语句在布尔表达式为 false 时执行。可用?:代替
if...else if...else 语句 if 后可以有可选的 else if...else 语句, else if...else 语句常用于多个条件判断。
内嵌 if 语句 你可以在 if 或 else if 中内嵌 if 或 else if 语句。
switch 语句 switch 语句允许测试一个变量等于多个值时的情况。
4.Int(Stirng)

中间转播字符串数字为整形。
实例:

let myString : String = "233"
let myInt :Int? = Int(myString)

斯威夫特 条件语句

1.字符串字面量

您能够在您的代码中蕴藏一段预订义的字符串值作为字符串字面量。字符串字面量是由双引号 ("") 包裹着的保有牢固顺序的文本字符集。 字符串字面量能够用于为常量和变量提供伊始值:

let someString = "Some string literal value"

在意someString常量通过字符串字面量举行初阶化,斯威夫特会测度该常量为String类型。

Swift循环

5.String.characters.count

计量字符串的长度。

语句 描述

if 语句

if 语句 由一个布尔表达式和一个或多个执行语句组成。

if...else 语句

if 语句 后可以有可选的 else 语句else 语句在布尔表达式为 false 时执行。

if...else if...else 语句

if 后可以有可选的 else if...else 语句, else if...else 语句常用于多个条件判断。

内嵌 if 语句

你可以在 if 或 else if 中内嵌 if 或 else if 语句。

switch 语句

switch 语句允许测试一个变量等于多个值时的情况。

2.开首化空字符串

要成立三个空字符串作为开端值,能够将空的字符串字面量赋值给变量,也能够初阶化二个新的String实例:

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

你可以透过检查其Bool类型的isEmpty属性来判定该字符串是或不是为空:

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

循环类型

循环类型 描述
for-in 遍历一个集合里面的所有元素,例如由数字表示的区间、数组中的元素、字符串中的字符。
for 循环 用来重复执行一系列语句直到达成特定条件达成,一般通过在每次循环完成后增加计数器的值来实现。
while 循环 运行一系列语句,如果条件为true,会重复运行,直到条件变为false。
repeat...while 循环 类似 while 语句区别在于判断循环条件之前,先执行一次循环的代码块。类似于do...while。
6.utf8

您能够因此遍历String的uft8属性来访谈他的UTF-8编码。

Swift 循环

3.字符串可变性

你能够经过将一个一定字符串分配给一个变量来对其开始展览修改,只怕分配给八个常量来担保其不会被改变:

var variableString = "Horse"
variableString  = " and carriage"
// variableString 现在为 "Horse and carriage"

let constantString = "Highlander"
constantString  = " and another Highlander"
// 这会报告一个编译错误 (compile-time error) - 常量字符串不可以被修改。

巡回调控语句

控制语句 描述
continue 语句 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。
break 语句 中断当前循环。
fallthrough 语句 如果在一个case执行完后,继续执行下面的case,需要使用fallthrough(贯穿)关键字。
7.utf16

您能够通过遍历String的utf8属性来访谈它的UTF-16编码。

循环类型 描述

for-in

遍历一个集合里面的所有元素,例如由数字表示的区间、数组中的元素、字符串中的字符。

for 循环

用来重复执行一系列语句直到达成特定条件达成,一般通过在每次循环完成后增加计数器的值来实现。

while 循环

运行一系列语句,如果条件为true,会重复运行,直到条件变为false。

repeat...while 循环

类似 while 语句区别在于判断循环条件之前,先执行一次循环的代码块。
4.字符串是值类型

Swift 的String类型是值类型。 如若您创立了一个新的字符串,那么当其开始展览常量、变量赋值操作,或在函数/方法中传送时,会进展值拷贝。 任何动静下,都会对已有字符串值创立新别本,并对该新别本实行传递或赋值操作。 值类型在 结构体和枚举是值类型 中实行了详细描述。

斯维夫特 私下认可字符串拷贝的章程确定保证了在函数/方法中传递的是字符串的值。 很明朗无论该值来自于哪儿,都以你独自具备的。 您能够确信传递的字符串不会被改造,除非你和煦去修改它。

在其实编写翻译时,Swift编写翻译器会优化字符串的采用,使实际的复制只产生在相对供给的景况下,那意味你将字符串作为值类型的还要能够得到相当高的习性。

Swift字符串

斯维夫特字符串类型为String

8.unicodeScalars

你能够因而遍历String值的unicodeScalar属性来会见他的Unicode标量编码。

控制语句 描述

continue 语句

告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。

break 语句

中断当前循环。

fallthrough 语句

如果在一个case执行完后,继续执行下面的case,需要使用fallthrough(贯穿)关键字。
5.利用字符

你可通过for-in循环来遍历字符串中的characters属性来得到每两个字符的值:

for character in "Dog! 
		

本文由澳门新萄京官方网站发布于www.8455.com,转载请注明出处:澳门新萄京官方网站Swift学习笔记,基本运算符

关键词: