美文网首页
swift -第二天

swift -第二天

作者: 夢若繁星 | 来源:发表于2017-09-22 16:25 被阅读13次

    一 : 字符串的使用 : 

    1>字符串的定义

    1.1 不可变字符串的定义

    1.2 可变字符串的定义

    2>获取字符串的长度

    3>字符串的拼接

    3.1字符串之间的拼接

    3.2字符串和其他标识符之间的拼接"\(标识符)"

    3.3字符串拼接过程中的格式化:  string(format:"%d:%d",参数)

    4>字符串的截取

    4.1 将String 转成NSString 在进行截取(推荐)

    4.2 直接使用String中的方法进行截取 .String.Index

    二 : 数组的使用

    1>数组的定义

    1.1定义不可变数组 使用 let 修饰  let array = ["2","3","4"]

    1.2定义可变数组  使用var 修饰  var arrayM = [String]()

    2>对可变数组的操作 : 增删改查

    2.1增 : arrayM.append("ml")

    2.2删 :arrayM.remove(at: 0)

    2.3改 :arrayM[0] ="lm"

    2.4 获取 : let item =arrayM[1]

    3>对数组的遍历

    3.1获取数组的长度 

     let count =array.count

    3.2 数组的遍历(i/item/index - item)

     for i in 0..<count {
    print (array[i])

    }

    for item in array {

     print(item)

    }

    for (Index,item) in array.enumerated () {

    print (index)

    print(item)

    }

    3.4 数组的组合 : 如果两个数组中存放的是相同的元素,那么在swift中可以对两个数组进行相加,直接合并

    三: 字典的使用

    1>字典的定义
    1.1  不可变字典,用 let 修饰  let dict : [String : Any] = ["name":"malong","age": 22,"height": 1.73]

    1.2 可变字典,用var 修饰  var dictM = [String : Any]() 

    2>对可变字典的基本操作 : 增删改查

    2.1 增 : 

    dictM["name"] ="ml"

    dictM["age"] = 22

    dictM["height"] = 1.73

    2.2 删

    dictM.removeValue(forKey:"height")

    2.3 改

    dictM["name"] ="lm"

    dictM.updateValue("malong", forKey:"name")

    2.4 查

    dictM["age"]

    3> 遍历字典

    3.1 遍历所有的key

    for key in dict.keys {
    print(key)

    }

    3.2 遍历所有的values

    for value in dict.values {
    print(value)

    }

    3.3 遍历所有的key/value

    for (key,value) in dict {
     print(key,value)

    }

    4> 字典合并

    var  dict3 : [String:Any] = ["name":"why","age": 18]

    letdict2 : [String:Any] = ["height": 1.88,"phoneNum":"+86 110"]

    for(key, value)indict2{

    dict3[key] = value

    }

    print("%@",dict3)

    四 : 元祖的使用 : 对比数组和字典来说更加直观取出数据更加方便 

    letinfo = ("malong","123","1.23")

    letname1 =info.0

    letage1 =info.1

    letheight1 =info.2

    letinfo2 = (name :"malong", age :"123", height :"1.31")

    info2.name

    info2.age

    info2.height

    五 : 可选类型 

    1> 可选类型的定义 

    1.1 var name :<optional>String = nil

    1.2 var name : String? = nil

    2> 可选类型的赋值

    name = "malong"

    name = Optioal("malong")

    3> 可选类型的取值

    print(name)

    4> 强制解包

    print(name!) 

    注意:必须强制解包必须保证该值不为nil,如果为nil强制解包就会崩溃

    5> 可选绑定 : (固定格式) 该语法用于可选类型,使我们使用起来可选类型更加方便

    5.1 判断name是否有值,如果没有值,则不执行{}

    5.2 如果name有值,那么系统会自动对可选类型进行解包,并且讲解包后的结果赋值给前面的变量

    if let tempName = name {
     print(tempName)

    }

    if let name = name {
     print(name) 

    }

    六 可选类型的应用 :只要有一个类型可能为nil,那么这个标识符的类型一定是一个可选类型

    1> 将字符串转成Int类型

    let m : Double = 2.44

    let n = Int(m)

    let str : String = "123"

    let num :Int? = Int(str)

    2> 根据文件名称:123.plist,获取该文件的路劲

    let path : String? = Bundle.main.path(forResource:"123.plist", ofType:nil)

    3> 将字符串转成NSURL ,如果字符串中有中文,那么就转化不成功返回结果nil

    let url = URL(string : "http://www.baidu.com")

    4> 从字典中取出元素

    let dict : [String : Any] = ["name" : "malong","age" : 12]

    let value = dict["nene"]

    七 : 类型转换

    1> 之前的as使用

    let str = "www.baidu.com"

    (str as NSString),substring(to:4)

    2> as? as! 的用法

    let dict : [NSString : Any] = ["name" : "malong" , "age" : 12]

    2.1 as?的用法 : as? 转成的类型是一个可选类型,系统会自动判断tempName是否可以转成String,如果可以转成就获取字符串,如果转化不成功,返回nil

    let tempName = dict["name"]

    let name = tempName as? String

    if let name = name {
     print(name)

    }

    if  let name = dict["name"] as? String {
    print(name)

    }
    2.2 as! 的用法 : 通过as! 转成具体类型,注意:!如果转化不成功,则程序会直接崩溃. 建议:!如果确定能转化成功,在用as!,平时不建议使用

    let tempName1 = dict["name"]

    let name1 = tempName1 as! String

    八 函数的使用

    1> 没有参数,没有返回值的函数

    func about() ->Void {
    print(hahahha)

    }

    2> 有参数没有返回值的函数

    func today1(day :String) {

    print("今天星期:\(day)")

    }

    today1(day:"五")

    3> 没有参数有返回值的函数

    func attention() ->String{

    return"前方高能!!"

    }

    let  attentionMsg =attention()

    4> 有参数有返回值的函数

    funcjian (num1 :Int,num2 :Int) ->Int{

    returnnum1 - num2

    }

    letresult1 =jian(num1: 39, num2: 21)

    print(result1)

    九  函数的其他用法

    1>内部参数,外部参数

    1.1 内部参数 : 在函数内部能看到标识符的名称, 该标识符就是内部参数

    1.2 外部参数: 在函数外部能看到标识符的名称, 该标识符就是外部参数

    默认情况下, 所哟的参数都是内部参数,也都是外部参数

    修改外部参数: 在标识符钱加上外部参数名称即可

    如果不希望显示外部参数,可以在标识符前加上_

    func sum1 (_n :Int,_m :Int) ->Int{//在前面加_ 调用的时候就不显示参数的名称

    return  n + m

    }

    let result1 = sum1(23,33)

    2>可变参数: 参数的个数是可变的

    func sum1(_ nums : Int...) -> In t{

    var total = 100

    for i   in nums {

    total -= i

    }

    returntotal

    }

    sum1(30, 20,20,10,11)

    3>默认参数: 可以给摸一个参数提供一个默认值

    4>指针参数:inout 

    varm :Int= 20

    varn :Int= 30

    func swapNum(num1 :inout Int, num2 :inout  Int) {

    lettemp = num1

    num1 = num2

    num2 = temp

    }

    swapNum(num1: &m, num2: &n)

    print("m:\(m) n:\(n)")

    相关文章

      网友评论

          本文标题:swift -第二天

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