美文网首页工作生活
Swift-方法嵌套

Swift-方法嵌套

作者: linbj | 来源:发表于2019-07-01 19:45 被阅读0次

当方法当作变量或者参数后就意味着我们可以在一个方法中定义新的方法,这给代码结构层次和访问级别的控制带来了新的选择。

如下例的一个方法请求中调用了很多其他的函数,可是其他的函数在项目中可能就只有这个方法会调用到:

func appendQuery(var url: String,
                     key: String,
                   value: AnyObject) -> String {

    if let dictionary = value as? [String: AnyObject] {
        return appendQueryDictionary(url, key, dictionary)
    } else if let array = value as? [AnyObject] {
        return appendQueryArray(url, key, array)
    } else {
        return appendQuerySingle(url, key, value)
    }
}

func appendQueryDictionary(var url: String,
                               key: String,
                             value: [String: AnyObject]) -> String {
    //...
    return result
}

func appendQueryArray(var url: String,
                          key: String,
                        value: [AnyObject]) -> String {
    //...
    return result
}

func appendQuerySingle(var url: String,
                           key: String,
                         value: AnyObject) -> String {
    //...
    return result
}

可以考虑改成这样的形式

func appendQuery(var url: String,
                     key: String,
                   value: AnyObject) -> String {

    func appendQueryDictionary(var url: String,
                                   key: String,
                                 value: [String: AnyObject]) -> String {
        //...
        return result
    }

    func appendQueryArray(var url: String,
                              key: String,
                            value: [AnyObject]) -> String {
        //...
        return result
    }

    func appendQuerySingle(var url: String,
                               key: String,
                             value: AnyObject) -> String {
        //...
        return result
    }

    if let dictionary = value as? [String: AnyObject] {
        return appendQueryDictionary(url, key, dictionary)
    } else if let array = value as? [AnyObject] {
        return appendQueryArray(url, key, array)
    } else {
        return appendQuerySingle(url, key, value)
    }
}

相关文章

  • Swift-方法嵌套

    当方法当作变量或者参数后就意味着我们可以在一个方法中定义新的方法,这给代码结构层次和访问级别的控制带来了新的选择。...

  • 结构体嵌套

    普通结构体嵌套 普通结构体嵌套,嵌套结构体可以通过 .子变量.方法 的方式获取被嵌套的属性和方法 匿名嵌套 匿名嵌...

  • Swift-方法

    在Swift中,类,结构体,枚举,都能定义实例方法。 结构和枚举可以在Swift中定义方法的事实是与C和Objec...

  • NestedScrollView 和RV的滑动监听

    嵌套监听 方法可用

  • 方法嵌套

    方法终于成为了一等公民,也就是说,我们可以将方法当作变量或者参数来使用了。更进一步地,我们甚至可以在一个方法中定义...

  • 方法嵌套

    Swift 中, 方法称为了一等公民,也就说,方法可以当做参数进行传递进另一个方法,也可以在一个方法中,定义一个方...

  • kotlin 基础嵌套和内部类 19

    这里的 Nested 类 Outer 的嵌套类,调用嵌套类的方法是 Outer.Nested() 在 foo 方法...

  • swift-类属性

    了解属性之前,需要先了解前面的swift-类结构内容 - swift-类结构源码探寻[https://www.ji...

  • Swift-自定义UITableViewCell和View(XI

    Swift-自定义UITableViewCell和View 概要 本文主要粗略的整理两种方法用于自定义UITabl...

  • Swift4.0 --- 第一节:变量和常量

    // // ViewControllerOne.swift // Swift-(1) // // Created ...

网友评论

    本文标题:Swift-方法嵌套

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