美文网首页
Swift 中的一些关键字

Swift 中的一些关键字

作者: keisme | 来源:发表于2017-11-07 22:24 被阅读8次
  • open:可以在任何地方访问、继承和重写

  • public:可以在任何地方被访问,在其他模块不能被继承和重写

  • internal:默认访问级别,在整个模块内都可以被访问

  • fileprivate:可以在同一个文件内被访问、继承和重写

  • private:只能在本类访问和使用,不包括扩展类

  • fallthrough :Swift 中的 switch 语句可以省略 break,满足条件直接跳出循环。fallthrough 则具有贯穿作用,会继续执行后续的 case,直到碰到 break 或 default 才跳出循环。

switch integerToDescribe {  
case 1, 3, 5, 7, 11, 13, 17, 19:  
    description += " a prime number, and also";  
    fallthrough      // 执行到此并不跳出循环,而是继续执行case5
case 5:  
    description += " an integer"    // 执行到这一步,跳出循环
default :  
    description += " finished"  
}
  • where:用于条件判断
let yetAnotherPoint = (1, -1)  
switch yetAnotherPoint {  
case let (x, y) where x == y:  
println("(\\(x), \\(y)) is on the line x == y")  
case let (x, y) where x == -y:  
println("(\\(x), \\(y)) is on the line x == -y")  
case let (x, y):  
println("(\\(x), \\(y)) is just some arbitrary point")
  • is & as:is 用于类型判断,as 用于强制转换
for view : AnyObject in self.view.subviews  
{  
  if view is UIButton  
  {  
      let btn = view as UIButton;  
      println(btn)  
  }  
}

as 使用场合:

  1. 向上转型:
class Animal {}
class Cat: Animal {}
let cat = Cat()
let animal = cat as Animal
  1. 数值类型转换:
let num1 = 42 as CGFloat
let num2 = 42 as Int
let num3 = 42.5 as Int
let num4 = (42 / 2) as Double
  1. switch 语句
switch animal {
    case let cat as Cat:
    print("如果是Cat类型对象,则做相应处理")
    case let dog as Dog:
    print("如果是Dog类型对象,则做相应处理")
    default: break
}

as! 用于强制转换,转换失败会导致程序崩溃,而 as? 转换失败时会返回一个 nil 对象。

  • guard:与 if 相反,当不满足条件时执行后面的语句。
func test(input: Int?) {
    guard let _ = input else {
        print("Input cannot be nil")
        return
    }
}

test(input: nil)
// print "Input cannot be nil"
  • static:和 class 关键词一样,都用来生成类方法,不同的是,class 修饰的方法可以被重写,而 static 不行。

  • mutating :当需要在方法中修改 structenum 中的成员值时,用 mutating 修饰对应的方法。

相关文章

  • OC中有guard吗??

    先来看看 Swift 的 guard 关键字 guard 是 Swift 中特有的一个关键字,用于处理一些条件不成...

  • [OC] 如何在 OC 中使用类似 Swift 的 guard

    Swift 的 guard 关键字 guard 是 Swift 中特有的一个关键字,用于处理一些条件不成立时进行函...

  • swift之mutating关键字

    部分参考:swift之mutating关键字 swift中在structures和enumerations的方法中...

  • Swift 之关键字总结

    Swift 中有多少关键字? 在Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表...

  • 435,Swift - mutating关键字的使用(面试点:在

    Swift中mutating关键字 Swift中protocol的功能比OC中强大很多,不仅能再class中实现,...

  • Swift关键字总结

    Swift中有多少关键字?在Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表达式...

  • swift 4.0 泛型

    泛型 Swift中mutating关键字 Swift中protocol的功能比OC中强大很多,不仅能再class中...

  • Swift 难点

    关于Swift的闭包,尾随闭包,Swift 中类型检测使用关键字is,类型转换使用关键字as。Any类,和AnyC...

  • Swift中的一些关键字

    noescape和autoclosure noescape:这个关键字告诉编译器,参数闭包只能在函数内部使用。它不...

  • Swift 中的一些关键字

    open:可以在任何地方访问、继承和重写 public:可以在任何地方被访问,在其他模块不能被继承和重写 inte...

网友评论

      本文标题:Swift 中的一些关键字

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