zoukankan      html  css  js  c++  java
  • scala基础

    下载Scala: http://www.scala-lang.org/download/

    数值类型:Byte,Short,Int,Long,Float,Double
    字符类型和字符串类型:Char,String
    Unit类型
    Nothing类型

    自定义函数:
    def 函数名称(参数列表:参数类型):返回值类型={
        //函数体
    }
    返回值类型可忽略

    Trait像拥有部分实现的接口,它提供一个介于单一继承和多重继承的中间地带,可以在其它类中混入它们,这样就可以用一组特性对类进行增强

    包可以包含类、对象和特质,但不能包含函数或者变量的定义。很不幸,这是Java虚拟机的局限

    把工具函数或者常量添加到包而不是某个Utils对象,这是更加合理的做法

    将函数作为变量的值(值函数)      在Scala中,可以将一个函数作为另一个函数的参数

    Scala的闭包:就是函数的嵌套,即:在一个函数定义中,包含另外一个函数的定义

    柯里化:Currying
    柯里化函数(Curried Function)是把具有多个参数的函数转化为一条函数链,每个节点上是单一参数
    def add(x: Int, y: Int) = x + y
    def add(x: Int)(y: Int) = x + y //Scala柯里化的语法

    map:在列表中的每个元素上计算一个函数,并且返回一个包含相同数目元素的列表
    foreach: foreach和map相似,只不过它没有返回值,foreach只要是为了对参数进行作用
    filter: 移除任何使得传入的函数返回false的元素。返回Boolean类型的函数一般都称为断言函数
    zip: zip把两个列表的元素合成一个由元素对组成的列表里
    partition: partition根据断言函数的返回值对列表进行拆分
    find: find返回集合里第一个匹配断言函数的元素
    flattern: flatten可以把嵌套的结构展开
    flatMap: flatMap是一个常用的combinator,它结合了map和flatten的功能

    不可变列表(List)        可变列表(LinkedList)
    常用的序列:Vator、Range
        Vector是ArrayBuffer的不可变版本,是一个带下标的序列
        Range表示一个整数序列

        使用implicit申明的函数参数叫做隐式参数

  • 相关阅读:
    美剧基本演绎法福尔莫斯的一句话
    HowToDoInJava 其它教程 1 · 翻译完成
    我们关于版权保护的意见与建议
    HowToDoInJava Spring 教程·翻译完成
    【转】21世纪律师办公自动化的一个调查
    iBooker AI+财务提升星球 2020.4 热门讨论
    布客·ApacheCN 翻译校对活动进度公告 2020.5
    数据可视化的基础知识·翻译完成
    Java 高效编程(Effective Java)中文第三版(补档)
    布客·ApacheCN 编程/大数据/数据科学/人工智能学习资源 2020.4
  • 原文地址:https://www.cnblogs.com/cyf18/p/14287232.html
Copyright © 2011-2022 走看看