美文网首页iOS
OC 函数式编程和链式编程

OC 函数式编程和链式编程

作者: CoderGuogt | 来源:发表于2020-10-16 14:23 被阅读0次

函数式编程链式编程,可能大家在日常开发中都有接触过,第三方框架 Masonry 就是利用了这个方式。

函数式编程

OC 中函数式编程是通过 Block 的方式去实现的。下面,利用一个例子来讲解 函数式编程

要实现的功能:给一个字符串末尾拼接另外一个字符串(只是为了举例,利用函数式编程来实现)

    1. 新建一个 NSString 分类,分类代码如下:
    • .h 文件
    /// 在字符串的末尾附加另外一个字符串
    - (NSString *(^)(NSString *string))yxc_appendString;    
    
    • .m 文件
    /// 在字符串的末尾附加另外一个字符串
    - (NSString * _Nonnull (^)(NSString * _Nonnull))yxc_appendString {
        
        return ^(NSString *string) {
            
            return [self stringByAppendingString:string];
        };
    }
    
    1. 进行调用
    字符串拼接函数式编程的调用

    可以查看到结果,已经将另外一个字符串拼接到一起了,看到这里,也许心中有疑问,为什么这个方法声明和实现都没有参数,而在调用的时候却传了一个字符串过去?这是怎么做到的?

    如果有这个疑问,并且百思不得其解的话,下面在调用的时候,换一种方式去调用这个方法,或许就会豁然开朗。

    函数式编程实际的调用流程

    通过以上的方式调用,发现 string.yxc_appendString(@"的使用") 实际上就是一个 block 的调用。因为 yxc_appendString 方法返回的就是一个 block,再加上直接调用就简写成了这种方式。因为 yxc_appendString 是一个方法,而且是一个无参数的方法的原因,导致在看到 string.yxc_appendString(@"的使用") 时,第一反应就是方法的调用,并且 (@"的使用")是一个参数。但是实际上是因为 yxc_appendString 方法的格式跟 OC 中的 getter 方法的格式是一样,所以在这里直接使用点语法,调用这个方法。如果 yxc_appendString 添加了一个参数是无法用 点语法 的。

函数式编程OC 的使用就是以上的方式,下面讲解 链式编程 的使用。

链式编程

上面刚实现的 yxc_appendString 这个方法就已经满足了 链式编程,因为这个方法 block 内部返回的就是一个 NSString 类型,所以可以继续调用本身的 yxc_appendString 方法。下面直接看使用方式:

OC 链式编程的使用

在这里,拼接完 的使用 这个字符串的时候,继续直接拼接 ,iOS 链式编程的使用,最后结果也如预期结果。

以上就是 函数编程链式编程 的简单使用。

相关文章

  • iOS-链式编程

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

  • iOS链式编程及函数式编程

    提到链式编程和函数式编程,最典型的代表是Masonry 比较完美的实现了函数式编程和链式编程。例如 ``` [vi...

  • iOS 函数编程 & 链式编程

    函数式(链式)编程 函数式编程概念 函数式编程是种编程范式 函数式编程 Functional Programmin...

  • iOS链式、函数式和响应式编程

    原文编程思想-iOS链式、函数式和响应式编程 在了解链式、函数式和响应式编程前,我们需要回顾下Block,它在下面...

  • OC 函数式编程和链式编程

    函数式编程 和 链式编程,可能大家在日常开发中都有接触过,第三方框架 Masonry 就是利用了这个方式。 函数式...

  • ReactiveObjC入门

    ReactiveObjC基础用法 iOS开发三种编程方式(响应式编程、函数编程、链式编程),函数编程最常用,链式编...

  • 像swift一样书写OC代码OC链式编程实践

    链式编程特点 链式编程 = 点语法 事物 串联 同样的hello word代码 OC和swift调用函数时候最大的...

  • 工作iOS技术总结

    链式编程、函数式、面向接口编程思想 iOS 之ReactiveCocoa 链式编程2 WKWebView的缓存处理...

  • OC中链式编程和函数式编程

    最近看到了链式编程和函数式编程这两个概念,这两天不是那么的忙 所以也研究了下这两个概念;在查询链式编程和函数式编程...

  • 链式编程与函数编程

    1. 链式编程 2. 函数式编程 例子:

网友评论

    本文标题:OC 函数式编程和链式编程

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