Programming In Scala Reading Note 2

Learn to programming in funtional way

如果一个方法中存在var的话,那么这个方法很可能就是指令式编程。

如果一个方法中只存在val的话,那么这个方法很可能是函数式编程。

我们需要尝试着把方法中的val删除掉。

副作用,一个方法满足函数式编程的基本要求,但是返回值是一个Unit的话,那么可以肯定这个方法是有副作用的。

而我们应该避免让一个方法有副作用。

不产生副作用就不会对我们有意义,于是我们需要最小化副作用,让每一个方法都干一件事儿,返回给我们一个值。

Programming In Scala Reading Note 2

时间: 2024-08-25 17:25:15

Programming In Scala Reading Note 2的相关文章

Programming In Scala Reading Note 3

Class and Object class TestClass { val some = 1 } 生成的class文件中会包含一个some()方法,并且这个方法是public的,也就是说类外可以通过类的对象来获取这个some的值 修改: class TestClass { private val some = 1 } 会生成一个private的some()方法,返回值也是some.但是现在类外是访问不到的 类的方法的参数默认是val类型的 副作用大部分用来修改一个属性的值或者开关一个I/O,只

Programming In Scala Reading Note 7

函数和闭包 1 成员方法 java中函数存在的方式,我们给一个类追加一个功能的途径就是给他追加一个方法. 2 本地方法 所谓的本地方法就是存在于一个方法内部的方法. 如果一个类中有一个方法是private的,且只有一个方法使用到他,那么这个方法完全可以被定义为一个本地方法 3 函数式一等公民 方法分为: 1 方法名称 def add 2 方法参数 (a:Int, b:Int) 3 赋值符号 = 4 方法体 a + b 其实,(a:Int, b:Int) => a + b,就构成了一个基本的函数了

Programming In Scala Reading Note 1

Chapter1 and Chapter2 方法定义: def methodName(param1: ParamType, param2: ParamType2, [maybe more]): ReturnType = { // method body } 函数式编程中一个约定俗成的说法就是,方法会返回一个值,不然一个方法的存在就是在产生副作用,而避免副作用是函数式编程的一个初衷. 数组的访问: scala中的数组是Array[ContentType],声明一个数组的时候需要指定数组的大小和所包

Programming In Scala Reading Note 8

AJAX XMLHttpRequest,是AJAX得以实现的基础 他是一个对象,有几个需要记住的方法和属性: XMLHttpRequest方法 open(method, url, async, username, password) method: post或get url: 请求地址 async: boolean,默认为ture,是否异步? 后面的基本上没啥意思... send(content) xmlHttpRequest调用了open方法之后,并没有真正发生一个请求事件. send执行的时

Programming In Scala Reading Note 6

Built-in Control Structures 内置控制结构 1 if 控制结构 scala的if跟java的if结构上相同,功能上也差不太多,scala的说法是,if能够返回一个值 val fileName = if (!args.isEmpty) args(0) else "default.txt" 这个语句相对普通,但是这里没有引入一个var,而是使用的val. println(fileName) 等价于 println(if (!args.isEmpty) args(0

Programming In Scala Reading Note 4

Basic Types and Operations Something new according to Java 1 + 2 跟 (1).+(2) 是一样的. val str = "Hello world" str indexOf 'o' 跟 str.indexOf('o')是一样的 indexOf有两种形式的参数,int和str,其中这个int就是用来确定是否存在一个char的.... Any method can be an operator 这句话应该这么理解,str.ind

Programming In Scala Reading Note 5

Functional Object Advantages and Disadvantages of Immutable Object Adv 1. 不可变对象更具容易被推断出来,因为它不会随着时间的变化而造成值的变化. Adv 2. 不可变对象可以自动地传递不会发生变化,而传递可变对象的话,需要首先对可变对象进行备份,以防止在其它过程中对对象的状态造成了修改. Adv 3. 线程不能够更改(corrupt:腐化,堕落)不可变对象的状态,注定他是线程安全的. Adv 4. 不可变对象拥有安全的Ha

thinking in java ----reading note (1)

# thinking in java 4th# reading note# victor# 2016.02.10 chapter 1 对象入门 1.1 抽象的进步    (1) 所有东西都是对象.    (2) 程序是一大堆对象的组合,对象间通过消息联系.    (3) 通过封装现有对象,可制作出新型对象.    (4) 每个对象都有一种类型(某个类的实例).    (5) 同一类的所有对象都能接受相同的消息.    1.2 对象的接口 & 1.3 实现方法的隐藏     接口规定了可对一个特定

jQueryInAction Reading Note 7.

jQuery插件命名规则 jquery.pluginName.js pluginName指代的是插件的名称,如voctrals,tlaliu或者更有意义的名称. 简化jQuery函数的参数列表 如果有一个函数有多个参数,但是并不是每一个参数都是必须的,可以把必须的参数放到前面,不必须的参数包装成一个object. 如: function complex(param, options){ var settings = $.extend( { option1 : defaultValue1, opt