Array的常见操作

var arr = [1, 2, 3, 4].png
[图片上传中...(var arr = [1, 2, 3, 4].png-f3939c-1635750768836-0)]
等价:

var arr = [1, 2, 3, 4].png

[1, 2, 3, 4].png

1mport Foundation.png

(1, 2.png
等价:

var arr = [1, 2, 3, 4].png

3 Var arr = [123,test, jack, -30].png

var arr.png
Map 与 compactMap的区别是
compactMap 会把解包失败的值,去掉

使用reduce实现map、 filter的功能.png

1使用reduce实现map、fi1ter的功能.png
Lazy的优化

let arr = [1, 2, 3].png
按顺序运行

import Foundatilon.png
按获取的顺序去加载数组中的元素
减少了耗时

import Foundation.png
Optional的map和flatMap

var num1 Int = 10.png
如果可选项有值,那么解包后走逻辑,在包装起来
如果为nil,那么会直接返回nil,不会走闭包里面的逻辑

0ptional(20).png
flatMap相比map多一步解包操作

var num1 Int = 10.png
Map相比3目运算更加简便

= vax fmt = DateFormatter().png
等价的

vax fmt.png

vax score Int a 98.png
简化很多代码

struet Person.png
函数式编程
函数式编程是一种编程范式,也就是如何编写程序的方法论
主要思想:把计算过程尽量分解成一系列可复用函数的调用
主要特征:函数是 “第一等公民”
函数与其他数据类型一样的地位,可以赋值给其他变量,也可以作为函数参数,函数返回值
函数式编程最早出现在LISP语言,绝大部分的现代编程语言也对函数式变成做了不同程度的支持

old 写法.png
使用函数式编程,将动作编程一个函数,多个函数连接起来组成一个功能,大大的增加了可读性,
但是目前来看,需要在更多的场景去实践,才能实际运用
柯里化

柯里化.png