Scala学习笔记--入门

Scala学习笔记

现在,也去不了学校,正好抽一点时间来学习一门基于JVM的语言–Scala。

Scala介绍

Scala语言的名称来自于“可伸展的语言”。它的应用范围很广,可以编写小的简单的脚本,也可以构建大型的系统。Scala是一门融合了面向对象和函数式编程理念的语言。 Scala运行在标准的Java平台上,可以与Java类库无缝交互。因为运行在JVM上,所以它和Java一样也是可以跨平台的。当然了,这也是它流行的原因之一。使用 Scala 最著名的应用,应该就是Spark了,这是大数据方面很热门的技术,它就是采用了Scala来编写的。当然了,很多人说这门语言是很难的,使用门槛比较高。不过,如果不去亲自学习一下,谁知道有多高呢?(纸上得来终觉浅嘛!)

什么是函数式编程

函数式编程是属于编程范式的一种,编程范式就是如何编程程序的方法论。编程范式主要有:

1、命令式编程:
命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。如经典的 C、C++、Java等。

2、声明式编程:
声明式编程是以数据结构的形式来表达程序执行的逻辑。它的主要思想是告诉计算机应该做什么,但不指定具体要怎么做。SQL 语句就是最明显的一种声明式编程的例子。

3、函数式编程:

函数式编程和声明式编程是有所关联的,因为他们思想是一致的:即只关注做什么而不是怎么做。函数式编程最重要的特点是“函数第一位”,即函数可以出现在任何地方,比如可以把函数作为参数传递给另一个函数,不仅如此你还可以将函数作为返回值。

函数式编程的优点有:

  1. 代码简洁,开发快速
  2. 接近自然语言,易于理解
  3. 更方便的代码管理
  4. 易于"并发编程"
  5. 代码的热升级

当然了,目前主要使用的还是命令式编程,函数式编程的缺点过于明显:函数式编程常被认为严重耗费在CPU和存储器资源。所以,在早期内存和外存比较小的情况下,这些都是非常致命的缺点。但是,现在随着技术的发展,计算机芯片的速度已经让这些都不是什么大问题了。再加上函数式编程的好处,所以,目前的主流编程语言都开始朝着多范式的方向发展了。如从Java8开始引入了函数式编程,JS也有函数式编程等。

举例说明函数式编程

传统的Java指令式编程范式

import java.util.Iterator;
import java.util.List;

/**
 * 使用传统方式指令式遍历 列表
 * */
public class Example1 {
    public static void main(String[] args) {

        String[] animals = {"Cat", "Dog", "Pig", "Wolf", "Tiger", "Bird"};   //定义字符串数组
        List<String> animalList = new ArrayList<>(Arrays.asList(animals));   //转换为List
        //创建迭代器
        Iterator<String> it = animalList.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
    }
}

使用传统的方式处理起来,还是感觉比较复杂,需要使用很多的东西。

Java8以后引入的函数式编程范式

import java.util.stream.Stream;

public class Example2 {
    public static void main(String[] args) {
        String[] animals = {"Cat", "Dog", "Pig", "Wolf", "Tiger", "Bird"};   //定义字符串数组
        Stream.of(animals).forEach(System.out::println);
    }
}

使用函数式编程以后,感觉就简洁多了。

Scala的函数式编程范式

object Example3 {
  def main(args: Array[String]): Unit = {
    val animalList = "Cat" :: "Dog" :: "Pig" :: "Wolf" :: "Tiger" :: "Bird" :: Nil
    animalList.foreach(println)  
  }
}

使用 Scala 的函数式方式,可以看出来,创建 List 的过程本身也简洁多了。第一行就是创建了一个 List,非常神奇(先不过去管它,我这里也是初学,相较于初学,没必要什么都搞清楚。)然后就是遍历,这个和Java的函数式编程很像,但是更加简洁了。(可能这里不是很能体现出来。)

三个例子的运行结果
在这里插入图片描述

总结

想来了解一下什么是函数式编程,再通过三个简单的例子说明了函数式编程的好处。经过简单的了解,发现Scala还是很有趣的,不过它的语法糖感觉太多了,不过也不是要求一下子就接受了。学习也是一个循序渐进的过程嘛!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值