美文网首页
一:函数式编程:

一:函数式编程:

作者: lesline | 来源:发表于2018-10-15 11:05 被阅读13次

    函数式与命令式编程的区别:

    命令式编程关注的是怎么做,函数式编程关注的是做什么(由系统选择如何实现),
    命令式编程:特点是它的指令和计算机底层的词汇非相近

    示例:

    命令式编程:

    //取最大值
            List<Integer> list = Arrays.asList(1, 2, 4, 6);
            Integer max = list.get(0);
            for (Integer value : list.subList(1, list.size())) {
                if (value > max) {
                    max = value;
                }
            }
    

    函数式编程实现:

            int max1 = list.stream().reduce(0, Integer::max);
            Optional<Integer> max2 = list.stream().max(comparing(Integer::intValue));
    

    函数式编程注意事项

    1、无副作用
    指所有功能返回一个新的值,没有其它行为,不得修改外部变更的值。
    2、不变性
    只能修改本地变更,除此之外,它引用的对象应该是不可修改的对象。(final类型)

    int portNumber = 1337; 
    Runnable r = () -> System.out.println( portNumber);
    portNumber = 31337; //但局部变量必须显式声明为final,或事实上是final。
    

    Java 到底是值传递还是引用传递? - 知乎

    相关文章

      网友评论

          本文标题:一:函数式编程:

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