Swift2.0笔记1

Swift基本语法

元组:

把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。

可选类型:

(optionals)来处理值可能缺失的情况。可选类型表示:
1)有值,等于x
2)没有值(nil)

var userDefinedColorName: String?    //可选类型

隐式解析可选类型

当可选类型被第一次赋值之后就可以确定之后一直有值的时候;

var myButton: UIButton!

错误处理

  • 加关键字throws
 do {
      //代码块
 } catch Error.OutOfCleanDishes{
      //错误处理代码块 
 }

空合运算符

(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b
条件:
1)表达式a必须是Optional类型
2)默认值b的类型,必须要和a存储值得类型保持一致

简短表达:
a != nil ? a! : b
例:
    let defaultColorName = "red"
    var userDefinedColorName: String?   //默认值为nil
    var colorNameToUser = userDefinedColorName ?? defaultColorName

区间运算符:

  • 1)闭区间运算符:(a…b)一个包含从a到b(包括a和b)的所有值得区间,b必须大于等于a
  • 2)半开区间运算符:(a..< b)定义一个从a到b(不包含b)的区间,该区间包含第一个值,不包含最后一个值
    for index in 1...5{   // 包含15
        print("\(index)*5 = \(index*5)")
    }
使用场景:半开区间使用在一个从0开始的列表或者数组

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

字符串

  • 1)字符串索引
    String.startIndex:获取String第一个字符索引
    String.endIndex:获取String最后一个字符的后一个索引
    predecessor():获取前面一个索引
    successor()获取后面一个索引
    如果String是空串,startIndex和endIndex是相等的

    let greeting = “Guten Tag!”
    greeting[greeting.startIndex] //G
    greeting[greeting.sartIndex.successor()] //u
    greeting[greeting.endIndex.preDecessor()] //!

    indices:会创建一个包含全部索引的范围(Range),用来在一个字符串中访问单个字符

    for index in greeting.characters.indices{
        print("\(greeting[index])",terminator:"")
    }
  • 2)字符串插入和删除

    append():将一个字符添加到一个字符串的尾部
    insert(_:atIndex:):可以在一个字符串的制定索引插入一个字符
    var welcome = “hello”
    welcome.insert(“!”,atIndex: welcome.endIndex) //”hello!”
    insertContentsOf(_:at:)可以在一个字符串的制定所以插入一个字符串
    welcome.insertContentsOf(” there”.characters,at: welcome.endIndex.predecessor()) //”hello there!”
    removeAtIndex(_:):在指定索引删除一个字符
    removeRange(_:):在指定索引删除一个子字符串

集合类型

1)数组(Arrays)
2)集合(Sets)
3)字典(Dictionaries)

控制语句

  • while
    while condition{
         statements
    }
  • Repeat-while
    repeat {
        statements
    } while condition
  • switch
    switch condition{

        case value1:
            staements

        case value2,value3:
            statements

        default:
            otherwise
    }
    switch condition{

        case value1:
            staements
            fallthrough   //关键字fallthrough,c语言的贯穿特性(Java语言的switch特性)

        case value2,value3:
            statements

        default:
            otherwise
    }
  • 带标签的语句
    产生一个带标签的语句是通过在该语句的关键字的同一行前面放置一个标签,并且该标签后面还需带有一 个冒号;
    label name: while condition{
        statements
    }
  • guard
    执行取决于一个表达式的布尔值,可以使用guard语句来要求条件必须为真时,以执行guard语句后的代码,如果条件不为真则执行else分句中的代码
func greet (person: [String: String]){
    guard let name = person["name"] else{
        return
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值