标签分类
当前位置:首页 > 程序设计电子书 > Scala编程电子书网盘下载
Scala编程思想 Scala编程思想
pflory

pflory 提供上传

资源
16
粉丝
36
喜欢
96
评论
18

    Scala编程思想 PDF 完整第2版

    Scala编程电子书
    • 发布时间:

    给大家带来的一篇关于Scala编程相关的电子书资源,介绍了关于Scala、编程思想方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小54.6 MB,布鲁斯·埃克尔编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.6,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

  • Scala编程思想 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1JtxFJHsiqRmKTgm5d6hpow
  • 分享码:atv1
  • Scala编程思想 第二版 PDF

    这书详细介绍Scala的基本特点,选用言简意赅的“分子”结构Scala語言的原素和方式。1个“分子”即是1个中小型知识结构图,根据编码实例正确引导用户逐渐理解Scala的要旨,融合训练激励用户结合实际了解并写成正宗的Scala编码。浏览可免费下载训练解释和编码实例,还可掌握这书英文版的即时动态性。这书不用程序编写背景图专业知识,合适Scala新手阅读文章。另外,这书也为有工作经验的程序猿出示了“快手”,相互探寻计算机语言将来的样子。

    目录

    • 出版者的话
    • 译者序
    • 前言
    • 编辑器
    • shell
    • 安装(Windows)
    • 安装(Mac)
    • 安装(Linux)
    • 运行Scala
    • 注释
    • 编写脚本
    • 数据类型
    • 变量
    • 表达式
    • 条件表达式
    • 计算顺序
    • 组合表达式
    • 总结1
    • 方法
    • 类和对象
    • ScalaDoc
    • 创建类
    • 类中的方法
    • 导入和包
    • 测试
    • for循环
    • Vector
    • 更多的条件表达式
    • 总结2
    • 模式匹配
    • 类参数
    • 具名参数和缺省参数
    • 重载
    • 构造器
    • 辅助构造器
    • 类的练习
    • case类
    • 字符串插值
    • 参数化类型
    • 作为对象的函数
    • map和reduce
    • 推导
    • 基于类型的模式匹配
    • 基于case类的模式匹配
    • 简洁性
    • 风格拾遗
    • 地道的Scala
    • 定义操作符
    • 自动字符串转换
    • 元组
    • 伴随对象
    • 继承
    • 基类初始化
    • 覆盖方法
    • 枚举
    • 抽象类
    • 特征
    • 统一访问方式和setter
    • 衔接Java
    • 应用
    • 浅尝反射
    • 多态
    • 组合
    • 使用特征
    • 标记特征和case对象
    • 类型参数限制
    • 使用特征构建系统
    • 序列
    • 列表和递归
    • 将序列与zip相结合
    • 映射表
    • 引用和可修改性
    • 使用元组的模式匹配
    • 用异常进行错误处理
    • 构造器和异常
    • 用Either进行错误报告
    • 用Option对“非任何值”
    • 进行处理
    • 用Try来转换异常
    • 定制错误报告机制
    • 按契约设计
    • 记日志
    • 扩展方法
    • 使用类型类的可扩展系统
    • 接下来如何深入学习
    • 附录A AtomicTest
    • 附录B 从Java中调用
    • Scala
    • 索引

    上一篇:疯狂前端开发讲义:jQuery+AngularJS+Bootstrap前端开发实战  下一篇:游戏让学习高效

    展开 +

    收起 -

    码小辫二维码
     

    Scala编程相关电子书
    学习笔记
    网友NO.419070

    Scala实现冒泡排序、归并排序和快速排序的示例代码

    1、冒泡排序 def sort(list: List[Int]): List[Int] = list match { case List() = List() case head :: tail = compute(head, sort(tail)) } def compute(data: Int, dataSet: List[Int]): List[Int] = dataSet match { case List() = List(data) case head :: tail = if (data = head) data :: dataSet else head :: compute(data, tail) }def main(args: Array[String]) { val list = List(3, 12, 43, 23, 7, 1, 2, 0) println(sort(list)) } 2、归并排序 def mergedSort[T](less: (T, T) = Boolean)(list: List[T]): List[T] = { def merged(xList: List[T], yList: List[T]): List[T] = { (xList, yList) match { case (Nil, _) = yList case (_, Nil) = xList case (x :: xTail, y :: yTail) = { if (less(x, y)) x :: merged(xTail, yList) else y :: merged(xList, yTail) } } } val n = list.length / 2 if (n == 0) list else { val (x, y) = list splitAt n merged(mergedSort(less)(x), mergedSort(less)(y)) } }def main(args: Array[String]) { val list = List(3, 12, 43, 23, 7, 1, 2, 0) println(mergedSort((x: Int, y: Int) = x y)(list)) } 3、快速排序 def quickSort(list: List[Int]): List[Int] = { list match { case Nil = Nil case List() = List() case head :: tail = val (left, right) = tail.partition(_ head) quickSort(left) ::: head :: quickSort(right) } }def main(args: Array[String]) { val list = List(3, 12, 43, 23, 7, 1, 2, 0) println(quickSort(list)) } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。 ……

    网友NO.411737

    浅析scala中map与flatMap的区别

    在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合。由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好处主要是不可变性带来的。没有可变的状态,函数就是引用透明(Referential transparency)的和没有副作用(No Side Effect)。 任何一种函数式语言中,都有map函数与faltMap这两个函数,比如python虽然不是纯函数式语言,也有这两个函数。再比如在jdk1.8之后,也加入了Lambda表达式,自然也支持map函数。 现在简单说说scala中这两个函数的用法。有一种观点认为将map和flatMap说成Scala函数机制的核心都不为过分,其实是有一定道理的。因为实际中我们使用最多的场景就是对数据进行map操作或者flatMap操作。map函数的用法,顾名思义,将一个函数传入map中,然后利用传入的这个函数,将集合中的每个元素处理,并将处理后的结果返回。而flatMap与map唯一不一样的地方就是传入的函数在处理完后返回值必须是List,其实这也不难理解,既然是flatMap,那除了map以外必然还有flat的操作,所以需要返回值是List才能执行flat这一步。 总结:1. map会将每一条输入映射为一个新对象。{苹果,梨子}.map(去皮) = {去皮苹果,去皮梨子}……

    网友NO.340655

    Java和scala实现 Spark RDD转换成DataFrame的两种方法小结

    一:准备数据源 在项目下新建一个student.txt文件,里面的内容为: 1,zhangsan,20 2,lisi,21 3,wanger,19 4,fangliu,18 二:实现 Java版: 1.首先新建一个student的Bean对象,实现序列化和toString()方法,具体代码如下: package com.cxd.sql;import java.io.Serializable;@SuppressWarnings("serial")public class Student implements Serializable { String sid; String sname; int sage; public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public int getSage() { return sage; } public void setSage(int sage) { this.sage = sage; } @Override public String toString() { return "Student [sid=" + sid + ", sname=" + sname + ", sage=" + sage + "]"; } } 2.转换,具体代码如下 package com.cxd.sql;import java.util.ArrayList;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.sql.Dataset;import org.apache.spark.sql.Row;import org.apache.spark.sql.RowFactory;import org.apache.spark.sql.SaveMode;import org.apache.spark.sql.SparkSession;import org.apache.spark.sql.types.DataTypes;import org.apache.spark.sql.types.StructField;import org.apache.spark.sql.types.StructType;public class TxtToParquetDemo { public static void main(String[] args) { SparkConf conf = new SparkConf().setAppName("TxtToParquet").setMaster("local"); SparkSession spark = SparkSession.builder().config(conf……

    网友NO.733883

    Scala求和示例代码

    Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。 def sum(f: Int = Int)(a: Int)(b: Int): Int = { @annotation.tailrec def loop(n: Int, acc: Int): Int = { if (n b) { println(s"n=${n},acc=${acc}") acc } else { println(s"n=${n},acc=${acc}") loop(n + 1, acc + f(n)) } } loop(a, 0) } sum(x = x)(1)(5) sum(x = x*x)(1)(5) //使用通配符 val sumSqure = sum(x = x * x)_ sumSqure(1)(5) =可以理解为映射关系 柯里化和偏应用函数 ……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明