金沙国际官网_金沙国际平台登录

因为这个金沙国际官网_金沙国际平台登录网站与很多的大型澳门赌场都有合作,金沙国际官网_金沙国际平台登录尽职尽责,高效执行,保持好奇心,不断学习,追求卓越,点击进入金沙国际官网_金沙国际平台登录马上体验吧,所以现在也正式地开始了营业。

您的位置:金沙国际官网 > 编程 > 和Java不同的语法

和Java不同的语法

发布时间:2019-11-06 16:55编辑:编程浏览(181)

    与if语句相同的是,guard也是基于一个表达式的布尔值去判断一段代码是否该被执行。与if语句不同的是,guard只有在条件不满足的时候才会执行这段代码。你可以把guard近似的看做是Assert,但是你可以优雅的退出而非崩溃。

    1.取消过去的接口

    这一节,我们将会讨论一下Swift中的函数相关的基本内容

    具体细节

      说起 GCD, 大家肯定回想起类似 dispatch_async 这样的语法。 GCD 的这个语法模式无论是和 Objc 还是 Swift 的整体风格都不太打掉。 所以 Swift 3 中对它的语法进行了彻底的改写。

    首先是函数的创建:

    让我们用一个简单的对比来比较一下现在的写法和用全新guard语句的写法:

    比如最常用的,在一个异步队列中读取数据, 然后再返回主线程更新 UI, 这种操作在新的 Swift 语法中是这样的:

    func sayHello (name:String) -> String {
       return "Hello"+name            
    } 
    
    1 func fooManualCheck(x: Int?) {
    2     if x == nil || x <= 0 {
    3         // 不符合值的要求时,写点代码
    4         return
    5     }
    6 
    7     // 使用x
    8     x!.description
    9 }
    
    1 DispatchQueue.global().async {
    2  
    3   DispatchQueue.main.async {
    4    
    5   self.label?.text = "finished"
    6    
    7   } 
    8    
    9 }
    

    上述即是函数的创建方法:

     

     

    func函数声明的关键字 
    sayHello函数名 
    (name:String)参数列表 
    -> String函数的返回值
     {
       return "Hello"+name函数体         
    } 
    

    这是最基本的Objective-C方式来保证一个变量真的存在并符合一个条件。没什么大问题,但是有一些缺点:

    变化很大, 首先 Swift 3 摒弃了 GCD 以前的函数式调用方式。 引入了 DispatchQueue 这个类, 第一行的 DispatchQueue.global().async

    当函数没有返回值的时候可以这样写:

    1. 你是在检查一个不符合你期望的条件,而非检查你想要的值。如果你加了一堆像这样的条件判断,代码就变的不好理解。你在这里其实是等着你的条件通不过。
    2. 如果前面条件判断的结果不符合了,你还得将你的变量强制拆包。

    相当于使用全局队列进行异步操作。然后在调用 DispatchQueue.main.async

    func sayHello (name:String) -> Void {
    
    } 
    或者
    func sayHello (name:String) -> () {
    
    } 
    

    Swift通过可选绑定让问题变得简单了一些,并解决了上面的部分缺点:

    使用主线程更新相应的 UI 内容。

    需要注意的是Void 的V是大写的,因为Void是一个类型。

    func fooBinding(x: Int?) {
        if let x = x where x > 0 {
            // 使用x
            x.description
        }
    
        // 如果值不符合条件判断,就执行下面的代码
    }
    

    无论从代码长度,已经语法含义上都清晰了一些呢。 另外, 这次对 GCD 的改进还包括优先级的概念。 以往我们使用 Global Queue 的时候,可以使用 DISPATCH_QUEUE_PRIORITY_DEFAULT 或 DISPATCH_QUEUE_PRIORITY_BACKGROUND 等,来指定队列的优先级。 而新的 GCD 引入了 QoS (Quality of Service) 的概念,体现在代码上面就是优先级所对应的名称变了, 对应关系如下:

    当有多个返回值的时候可以利用元组作为返回类型

    本文由金沙国际官网发布于编程,转载请注明出处:和Java不同的语法

    关键词:

上一篇:没有了

下一篇:没有了