Swift语法基础

2017-07-04  本文已影响0人  Coulson_Wang

作为iOS开发者,只会OC肯定是不够的,Swift作为苹果强推的一门语言,一定要掌握。这篇博客整理了一些Swift语法基础中的要点(本文书写时的Swift版本为3.1)
</br>


一、标识符的定义:

定义变量的格式:
var num : Int = 10
定义常量的格式:
let num : Int = 10
(通常把标识符定义为常量,如果确定需要修改时再修改为变量,保证数据安全)

</br>

二、类型推导

当一个标识符在定义时有直接赋值,那么可以省略类型。编译器会自动推导其类型

</br>

三、类型转换

  1. 隐式转换
    Swift中没有隐式转换
  2. 强制转换
let a = 10.0
let b : Int = Int(a)

</br>

四、逻辑分支

  1. if语句
  1. 三目运算
  1. guard
  1. switch

</br>

五、循环

  1. for循环
  2. while循环
  3. repeat while循环

</br>

六、字符串

Swift中的字符串是一个结构体,而不再是一个对象。效率更高

  1. 遍历字符串:
for char in str.characters {
    print(char)
}
  1. 拼接字符串

(1)字符串与字符串拼接。
直接使用+运算即可

(2)快速拼接。
在字符串中通过(param)的方式拼接参数:

let age = 18
let name = "xyz"
let height = 1.88
let info = "my name is \(name), my age is \(age), my height is \(height)"

打印结果my name is xyz, my age is 18, my height is 1.88
(3)格式化拼接。
以拼接时间为例

let min = 2
let sec = 7
let timeString = String(format : "%02d:%02d", arguments:[min, sec])

打印结果02:07

3.截取字符串
一般是先把String类型转换为NSString类型,再调用NSString的方法进行截取

let urlString = "www.baidu.com"
let header = (urlString as NSString).substring(to: 3)
//结果为"www"
let middle = (urlString as NSString).substring(with: NSMakeRange(4, 5))
//结果为"baidu"
let subfix = (urlString as NSString).substring(from: 10)
//结果为"com"

4.判断字符串是否为空

if str == "" {
    //do something
}
if str.characters.count == 0 {
    //do something
}
if str.isEmpty {
    //do something
}

</br>

七、数组

  1. 定义数组
let array = ["Baidu","Alibaba","Tencent"]
var mutableArray = [String]()  
  1. 操作可变数组
mutableArray.append("163")
mutableArray.append("HuaWei")
mutableArray[0]
mutableArray[0] = "HuaWei"
mutableArray.remove(at: 0)
  1. 遍历数组
for i in 0..<array.count {
    print(array[i])
}
for name in array {
    print(name)
}
for name in array[a..<b] {
    print(name)
}
  1. 合并数组
    相同类型的数组可以通过加法运算符直接合并
let resultArray = array1 + array2

</br>

八、字典

  1. 定义字典
let dict : [String : Any] = ["name" : "xyz" , "age" : 36, "height" : 1.86]
var dictM = [String : Any]()
  1. 对可变字典的操作
dictM["name"] = "xyz"
dictM["age"] = 36
dictM["height"] = 1.86
dictM["name"]
dictM["height"] = 1.58
dictM.removeValue(forKey: "name")
  1. 遍历字典
for key in dictM.keys {
    print(key)
}
for value in dictM.values {
    print(value)
}
for (key, value) in dictM {
    print(key)
    print(value)
}
  1. 合并字典
    只能通过遍历、往可变字典中追加的方式合并

</br>

九、元组

  1. 什么是元组?
    一种类似于数组或者字典的数据结构,可以用于定义一组数据。常用于作为方法的返回值
  2. 定义元组
let info1 = ("xyz",18,1.88)

通过点语法加下标获取元素

info1.0

</br>

let info2 = (name : "xyz", age : 18, height : 1.88)

获取元素时可以使用别名来获取元素

info2.name

</br>

let (name, age , height) = ("xyz", 18, 1.88)

取元素时可以直接用别名取

name
  1. 元组的比较
    如果元组中的值都可以比较,那么元组就可以比较
    元组比较按照从左往右、逐值比较的方式进行,知道发现有两个值不等为止。如果所有值都相等,那么两个元组相等。
(1, "abc") < (2, "aaa")    // true, 1 < 2
(4, "apple") < (4, "bad")    //true, 4 == 4, apple < bad
("abc", 12) == ("abc", 12)    //true 完全相等

注意:由于Bool类型不可以进行比较,所以包含布尔类型的元组不可比较

</br>

上一篇 下一篇

猜你喜欢

热点阅读