美文网首页
关于链式调用(函数式)

关于链式调用(函数式)

作者: __Objc | 来源:发表于2017-02-28 12:30 被阅读59次

关于链式

  • 个人理解

    就是同一对象接连调用各种方法来设置属性或者行为
    例如

 let person =    Person().add().eat().run().play()    

来初始话一个成员
而对象一初始化就会有这种属性

  • 类似

类似的我们初始化一个对象可能也会这么做:

class Person:NSObjc{
  var name:String?
  var age:String?
  var sex:String?
  func init(name:String,age:String,sex:String){
      self.name = name
      self.age = age
      self.sex = sex
    }
}
class Test:NSObjc{
   let person = Person("aa","20","1")
}

但是考虑到可扩展性,比如Person多加了一个身高属性height
那么我们一般会这么做

class Person:NSObjc{
  var name:String?
  var age:String?
  var sex:String?
  var height:Double?
  func init(name:String,age:String,sex:String,height:Double?){
      self.name = name
      self.age = age
      self.sex = sex
      self.height = height
    }
}
class Test:NSObjc{
   let person = Person("aa","20","1",187)
}

但是这样做相当麻烦
swift给我们提供了方法重载
那么我们可以这么做

class Person:NSObjc{
  var name:String?
  var age:String?
  var sex:String?
  var height:Double?
  func init(name:String,age:String,sex:String){
      self.name = name
      self.age = age
      self.sex = sex
    }
 func init(name:String,age:String,sex:String,height:Double?){
      self.init(name:name,age:age,sex:sex)
      self.height = height
    }
}
class Test:NSObjc{
   let person = Person("aa","20","1",187)
}
这样我们就可以扩充很多很多方法
  • 写在最后
    上面是我们经常这样做的 但是我觉得还是不够好用,于是总结了一些经验
    直接上代码
class Person:NSObject{
    var name:String?
    var age:String?
    var sex:String?
}
extension Person{
    func setName(name:String?) -> Person{
        self.name = name
        return self
    }
    func setAge(age:String?) -> Person{
        self.age = age
        return self
    }
    func setSex(sex:String?) -> Person{
        self.sex = sex
        return self
    }
}
class Test:NSObject{
    let person = Person().setName(name: "hhh").setAge(age: "20").setSex(sex: "1")
}

这样做在设置某些控件属性的时候相当有用,比如UILabel的numberOfLines只提供了属性,那么我们可以提供一个方法来设置numberOfLines这个属性达到链式调用

相关文章

  • iOS-链式编程

    函数式编程------->链式编程 函数式编程: 调用方式 我们最终目的是将函数式编程转换为链式编程:首先将调用方...

  • 关于链式调用(函数式)

    关于链式 个人理解就是同一对象接连调用各种方法来设置属性或者行为例如 来初始话一个成员而对象一初始化就会有这种属性...

  • Python函数式介绍一 - 高阶函数

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 最近为了给朋友推广Python函数式...

  • 函数链式思想实现 UIView 属性设置

    函数链式就是函数式加链式,具体什么是函数式,什么是链式,大家可以网上去查,这里只作简单说明。 函数式形如:A = ...

  • Python函数式介绍二 - 链式调用

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 上一篇文章中我们发现我们的代码越来越...

  • 编程思想

    响应式 函数式 链式

  • Kotlin进阶篇:Lambda编程3,lambda在序列中的使

    前言 上篇文章我们说了lambda在集合中的使用,我们不仅学习了集合的函数式API,也了解到了在链式调用集合函数式...

  • Swift 函数式学习-链式调用

    一般函数调用 链式调用 参考资料来源:http://valiantcat.com/

  • go context

    Req-->a-->c--->b---->return (链式调用) 链式调用和我们普通的函数调用是存在差别的:函...

  • Kotlin学习7-内置函数

    1:apply内置函数,返回本身,链式调用 2:let内置函数,仅展开,无法链式调用,不返回自己,返回最后一行,匿...

网友评论

      本文标题:关于链式调用(函数式)

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