面向函数编程

一、定义

        把程序分解成一系列函数,每个函数接收输入参数并返回输出结果,强调函数的纯粹性,即相同的输入必然产生相同的输出,且不产生可观察的副作用(例如不修改全局变量、不进行 I/O 操作等)。

二、优缺点

        1.优点:

                (1)可维护性高。体现在函数行为的确定性和模块独立性。面向函数编程强调使用纯函数,相同的输入总是产生相同的输出,这使得代码的行为更容易预测;函数是独立的逻辑单元,只依赖于输入参数,不依赖于外部状态。

                (2)更易进行并发编程。体现在无共享状态和函数并行执行。面向函数编程中,由于数据不可变且函数没有副作用,不存在多个线程同时访问和修改共享数据的问题,因此在并发环境下不会出现竞态条件和死锁等问题;纯函数可以在不同的线程或进程中并行执行,因为它们之间没有相互依赖和干扰。

                (3)代码复用性更好。体现在函数通用性和函数组合性。面向函数编程中的函数通常具有较高的通用性,可以被多个不同的模块或程序使用。只要输入参数的类型和格式符合要求,函数就可以正确地工作;面向函数编程鼓励将简单的函数组合成复杂的函数,这种组合方式可以在不同的场景中重复使用。

        2.缺点

                (1)表达能力受限。对于一些复杂的现实世界对象,面向函数编程可能难以直接进行建模;面向函数编程中,数据和操作数据的函数是分离的,虽然可以通过模块等方式来实现一定程度的封装,但相比面向对象编程中类的封装性,还是略显不足。

                (2)性能开销。面向函数编程中,函数的调用可能会带来一定的性能开销,特别是在频繁调用函数的情况下。使用不可变数据结构时,每次修改数据都需要创建一个新的副本,这可能会占用更多的内存空间,并且在处理大规模数据时,可能会导致性能下降。

三、示例代码

        通过代码来进一步了解面向函数编程。

        1.基本结构:func 为函数关键字 execFun1为函数名称

        

        2.函数中的参数:命名参数和非命名参数

        

                2.1命名参数和非命名参数的调用:

                

        3.带有返回值

        

        4.参数中既有非命名参数和命名参数时,应该注意的问题:*命名参数的后面不能有非命名参数。

        

        5.递归函数:自己调用自己。分为两个阶段:1.调用阶段;2.返回阶段。

        

        运行结果:

        

        6.同名变量:按照就近原则

        

        运行结果:

        

        7.方法重载:方法名相同,参数列表不同,与返回值类型无关,具体调用哪个参数,由参数列表决定。

        

        运行结果:

        

        8.将函数赋值给一个变量

        

        运行结果:

        

        9.一个函数可以作为另一个函数的参数

        

        运行结果:

        

        10.函数嵌套,函数里面也可以再定义函数

        

        运行结果:

        

四、全局变量和局部变量

        1.全局变量:在函数外部、整个程序的顶层定义的变量称为全局变量。全局变量的作用域是整个程序,也就是说,在程序的任何函数内部都可以访问全局变量。

        2.局部变量:在函数内部或代码块中定义的变量称为局部变量。它们的作用域仅限于定义它们的函数或代码块,也就是说,在函数或代码块外部,无法访问这些局部变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值