编程语言如何支持功能和面向对象的编程?

时间:2017-07-08 03:01:23

标签: oop functional-programming programming-languages

来自https://stackoverflow.com/a/44981969/156458

  

语言有两种常见的方法可以支持两者   功能和面向对象的编程。

     
      
  • 每个callable都是一个方法,函数只是隐藏类的方法,这是Ruby采用的方法;

  •   
  • 或每个callable都是一个函数,而object对象只是带有隐式或显式参数的函数   对象方法被调用,这是采用的方法   蟒。

  •   

这是一个准确的陈述吗?声明的来源是什么?

以下语言支持功能和面向对象编程的方法有哪些:

  • Scala的
  • 爪哇
  • C#?

感谢。

1 个答案:

答案 0 :(得分:2)

功能编程基于以下概念:

  • 高阶函数:您可以将函数传递给函数并从函数返回函数。更多详情here
  • 不可变对象:创建后无法更改状态的对象。更多详情here
  • 纯函数:没有副作用的函数,换句话说,当函数接收输入时,它每次都会产生相同的输出。更多详情here

如果你可以做所有这些事情,那么该语言支持函数式编程。

Scala的:

  • 基于JVM,因此支持OOP
  • 具有val语法,可创建不可变对象。
  • 支持high order function
  • 程序员负责创建纯函数

Java 8:

  • 支持OOP
  • 具有'final'关键字和有效的final以使对象不可变
  • 支持lambda expression
  • 的高阶函数
  • 程序员负责创建纯函数

C#也支持函数式编程,但我没有专业知识来回答你的问题!