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.indexOf(‘o‘)中的indexOf应该叫做method,而str indexOf ‘o‘中的indexOf才是一个operator,跟+一样。。。。

一元(unary)操作符

  1. 前缀:一元操作符的方法定义按照:unary_(m),其中这个m只能是+,-,!,~中的一个
  2. 后缀:也就是没有参数的方法,这里有一个约定,如果一个方法没有副作用的话,这个方法可以省略掉(),如String的toLowerCase方法;如果有副作用的话,这个()是不能省略的,如println()
    •   The convention is that you include parentheses if the method has side effects, such as println(), but you can leave them off if the method has no side effects, such as toLowerCase invoked on a String

str.toLowerCase()

str.toLowerCase

str toLowerCase()

str toLowerCase

他们都是一样的。。。。

有点问题,不知道为什么他们不能放倒一起

==

scala的==跟java的==不同

Java中的==用于primitive类型的时候,比较的是值,scala的方法是跟Java的一样

1 == 1; true == false; 等等

Java中==用于引用类型的时候比较的是引用类型的相等性,是否指向的是同一个对象(the two variables point to the same object on the JVM’s heap)。

OK SOMETHING WAIT FOR PREPAIR

val set1 = scala.collection.immutable.Set(1, 2, 3)

val set2 = scala.collection.mutable.Set(1, 2, 3)

set1 == set2 //true!!!

Programming In Scala Reading Note 4

时间: 2024-10-13 23:28:58

Programming In Scala Reading Note 4的相关文章

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 2

Learn to programming in funtional way 如果一个方法中存在var的话,那么这个方法很可能就是指令式编程. 如果一个方法中只存在val的话,那么这个方法很可能是函数式编程. 我们需要尝试着把方法中的val删除掉. 副作用,一个方法满足函数式编程的基本要求,但是返回值是一个Unit的话,那么可以肯定这个方法是有副作用的. 而我们应该避免让一个方法有副作用. 不产生副作用就不会对我们有意义,于是我们需要最小化副作用,让每一个方法都干一件事儿,返回给我们一个值. Pr

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