Programming In Scala Reading Note 4

本文深入探讨了Java中的基本类型与操作,包括整数加法、字符串操作及一元操作符的使用规则。同时解释了方法作为操作符的概念,并详细介绍了Java中的等号比较方法,特别对比了Scala与Java的等号用法。文章还讨论了Java中一元操作符的定义和使用规范,以及如何区分方法调用时的括号使用,强调了方法是否有副作用对括号使用的影响。

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!!!

 

转载于:https://www.cnblogs.com/voctrals/p/3808372.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值