随笔分类 -  Scala Programming

摘要:这篇博客深入介绍 Scala 的类的相关知识, 看看 Scala 简洁的类定义背后都发生了什么? 从简洁的 Scala 类定义代码到冗长的反编译代码解读之后, 回过头在去编写简洁的 Scala 代码时, 我相信这是一个奇妙的感觉.尽管 Scala 和 Java 有很多相同的地方, 但是在类的声明, 构造, 访问控制上存在很大的差异, 通过本文你也能看到相比较 Java 很多啰嗦的模板代码, Sca... 阅读全文
posted @ 2017-08-08 22:13 nowgood 阅读(2871) 评论(1) 推荐(0)
摘要:# 1. 数组## 1.1 定长数组scala.Array 是定长的可变的索引型集合, JVM 中, Scala 的 Array 是以 Java 数组方式实现. String 对应 java.lang.String, Int, Double或其他与 Java 中基本类型对应数组都有基本类型数组, 比如说 Array(1, 2) 在 JVM 中就是一个 int[].```val arr1 ... 阅读全文
posted @ 2017-08-05 18:20 nowgood 阅读(359) 评论(0) 推荐(0)
摘要:函数和方法的区别 ? 来自 Andrew Edgecombe 的回答 函数是一段代码,通过名字来进行调用。它能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。所有传递给函数的数据都是显式传递的。 方法也是一段代码,也通过名字来进行调用,但它跟一个对象相关联。方法和函 阅读全文
posted @ 2017-08-05 08:09 nowgood 阅读(581) 评论(0) 推荐(0)
摘要:1 基础 1.1 Scala 解释器 REPL — 交互式解释器环境 R(read)、E(evaluate)、P(print)、L(loop) 输入值,交互式解释器会读取输入内容并对它求值,再返回结果,并重复此过程。 1.2 声明 val(值) 和 var(变量) val: 定义值(常量), 即不可 阅读全文
posted @ 2017-08-04 21:00 nowgood 阅读(1652) 评论(0) 推荐(0)
摘要:隐式转换和隐式参数 1. 隐式转换 隐式转换函数(implicit conversion function) 指的是以 关键字声明的带 的函数. 这样的函数将会被自动应用, 将值从一种类型转化为另一种类型 import scala.math._ import scala.language.impli 阅读全文
posted @ 2017-08-01 18:24 nowgood 阅读(1254) 评论(0) 推荐(0)
摘要:问题来自 `Scala 函数式编程` 一书的习题, 让我很困扰, 感觉函数式编程有点神学的感觉.后面看懂之后, 又觉得函数式编程所提供的高阶抽象是多么的强大. 这个问题让我发呆了好久, 现在把自己形成的想法分享下, 如果能少让一个人为这个问题烦恼, 那就再好不过了:) 问题: 如何通过函数 `foldRight` 实现 左折叠(left fold)操作 ?这里只是讨论理论上的可行性, 实际中都是通... 阅读全文
posted @ 2017-07-16 17:24 nowgood 阅读(633) 评论(0) 推荐(1)
摘要:转载自: "Scala 初学者指南" , 这里有一系列很棒的文章 类型 Option 可能你已经见过它在 Map API 中的使用;在实现自己的提取器时,我们也用过它, 然而,它还需要更多的解释。 你可能会想知道它到底解决什么问题,为什么用它来处理缺失值要比其他方法好, 而且可能你还不知道该怎么在你 阅读全文
posted @ 2017-07-13 00:19 nowgood 阅读(1337) 评论(0) 推荐(0)
摘要:实际上Scala没有操作符, 只是以操作符的格式使用方法. 操作符的优先级取决于第一个字符(除了赋值操作符), 而结合性取决于最后一个字符 Scala的操作符命名更加灵活:) 操作符 中置操作符(Infix) 上述 代表一个带有两个参数的方法(一个隐式参数和一个显示参数) 在自己的类中定义操作符很简 阅读全文
posted @ 2017-07-12 18:07 nowgood 阅读(1990) 评论(0) 推荐(0)
摘要:要点如下: 1. Scala中类只能继承一个超类, 可以扩展任意数量的特质 2. 特质可以要求实现它们的类具备特定的字段, 方法和超类 3. 与Java接口不同, Scala特质可以提供方法和字段的实现 4. 当将多个特质叠加使用的时候, 顺序很重要 1. Scala类没有多继承 如果只是把毫不相关 阅读全文
posted @ 2017-07-11 20:19 nowgood 阅读(8200) 评论(0) 推荐(2)
摘要:1. 继承 Scala 通过 extends 关键字来继承类. 那么继承一个类有什么好处呢? 1. 子类拥有继承自超类的方法和字段(即为val(常量), var(变量)所定义的) 2. 可以添加自己需要的新方法和新字段, 3. 不但可以重写超类的方法, 还可以重写超类的字段. final 关键字 S 阅读全文
posted @ 2017-07-10 19:54 nowgood 阅读(1842) 评论(0) 推荐(0)
摘要:1. 单例对象 对于任何你在Java中会使用单例对象的地方, 在scala中都可以使用对象来实现; scala字段没有静态方法或者静态字段, 可以使用object语法结构达到同样的效果,对象(object)定义了某个类的单个实例; 对象构造器在对象第一次被使用时调用, 如果一个对象从来没有被使用过, 阅读全文
posted @ 2017-07-09 17:13 nowgood 阅读(717) 评论(0) 推荐(0)
摘要:![scala](http://images2015.cnblogs.com/blog/1182370/201707/1182370-20170708091741487-1967199828.jpg)* Scalable 编程语言* 纯正的的面向对象语言* 函数式编程语言* 无缝的java互操作> scala之父 Martin Odersky## 1. 函数式编程* 函数式编程(functio... 阅读全文
posted @ 2017-07-08 09:18 nowgood 阅读(1818) 评论(0) 推荐(0)