快学Scala 第一课 (变量,类型,操作符)

Scala 用val定义常量,用var定义变量。

常量重新赋值就会报错。

变量没有问题。

注意:我们不需要给出值或者变量的类型,scala初始化表达式会自己推断出来。当然我们也可以指定类型。

多个值和变量可以一起声明:

Scala 类型:Byte, Char, Short, Int, Long, Float, Double, Boolean

Scala不区分基本类型和引用类型(包装类型)

Scala StringOps类给字符串追加了上百种操作,所以在"Hello".intersect("World")这个表达式中,java.lang.String对象"Hello"被隐式转换成了StringOps对象,接着StringOps类的intersect方法被应用。

Scala还提供了RichInt,RichDouble,RichChar等。

Scala中我们用方法,而不是强制类型转换,来做转换。

Scala的算数操作符其实是方法。

Scala没有提供++和--操作符,我们需要使用+=1或者-=1

时间: 2024-12-25 08:41:08

快学Scala 第一课 (变量,类型,操作符)的相关文章

快学Scala第一部分

转载: 1.变量声明 [java] view plaincopy val answer = 8 * 5 + 2; //常量 var counter = 0;    //变量 //在必要的时候 ,可以指定类型 val greeting:String = null val greeting:Any = "Hello" //可以将多个值或变量放在一起声明 val xmax, ymax = 100 //xmax 和 ymax设为100 var greeting, message:String 

快学Scala 第二课 (apply, if表达式,循环,函数的带名参数,可变长参数,异常)

apply方法是Scala中十分常见的方法,你可以把这种用法当做是()操作符的重载形式. 像以上这样伴生对象的apply方法是Scala中构建对象的常用手法,不再需要使用new. if 条件表达式的值就是跟在if或else之后的表达式的值,如果两者类型不同,选择各分支类型的公共超类型作为返回类型. if(x>1) 1 相当于 if(x>1) 1 else () 你可以把()当做是表示"无有用值"的占位符,将Unit当做Java的Void 如果你在写较长的语句,需要分行来写的

快学Scala 第九课 (伴生对象和枚举)

Scala没有静态方法和静态字段, 你可以用object这个语法结构来达到同样的目的. 对象的构造器只有在第一次被使用时才调用. 伴生对象apply方法: 类和它的伴生对象可以互相访问私有特性,他们必须存在于同一个源文件. 类中要访问类的伴生对象中成员,需要通过类.成员调用. class Account private (val id: Int, initialBalance: Double){ } object Account { def apply(initialBalance: Doubl

快学scala 第十一章 操作符 读书笔记及习题答案代码

chapter 11 操作符 标签:快学scala 一.笔记 scala种可以在反引号中包含几乎任何字符序列, val 'val' = 42 所有的操作符都是左结合的,除了以冒号(:)结尾的操作符,和赋值操作符.用于构造列表的::操作符是又结合的.1::2::Ni1的意思是1::(2::Ni1),先创建出包含2的列表,这个列表又被作为尾巴拼接到以1作为头部的列表中. 2. 函数调用语法:f(arg1, arg2,...)扩展到可以应用于函数之外的值,如果f不是函数或方法,那么这个表达式等于f.a

快学Scala习题解答—第一章 基础

1 简介 近期对Scala比较感兴趣,买了本<快学Scala>,感觉不错.比<Programming Scala:Tackle Multi-Core Complexity on the Java Virtual Machine>好很多. 是本不错的入门书.而且每个章节都设置了难度级别,每章有习题,可以巩固Scala语法. 本文的目的就是针对这些习题进行解答 2 基础 2.1 在Scala REPL中键入3,然后按Tab键.有哪些方法可以被应用? 这个....直接操作一遍就有结果了.

快学Scala 第十九课 (trait的abstract override使用)

trait的abstract override使用: 当我看到abstract override介绍的时候也是一脸懵逼,因为快学scala,只介绍了因为TimestampLogger中调用的super.log依旧是个abstract class,所以必须在方法前加上abstract和override.但是并没有具体介绍如何使用,然后查阅了其他文档,才明白使用方法. 下面的代码定义了超类LoggerEmpty,这个定义意味着该特质只能混入扩展LoggerEmpty的类中. 在特质中声明抽象方法中有

快学scala笔记.

第一章 基础 val 定义的值实际上是一个常量 var 声明其值可变的变量 val xmax,ymax = 100 var greeting,message: String = null 1.3 常用类型 Scala的7种数值类型:Byte.Char.Short.Int.Long.Float和Double 1.toString() 2.to(10) "Hello".intersect("World") 1.4 算术和操作符重载 val answer = 8 * 5

快学Scala课后习题答案

分享一个之前做快学Scala的课后习题(2-21章节,19无)的Github链接,我把习题的文字写在了每个回答的注释上面,这样方便大家对照着看,省的回过头去对照着pdf看了,如果有做的不对的地方希望大家给予指正. 链接如下,http://github.com/fxxkinglife/scala-hello. 举一个第二章节的例子, object charpter02 { /* * 2.1 * 一个数字如果为正数,则它的signum为1; * 如果是负数,则signum为-1; * 如果为0,则s

学习python第一课 变量

Author:uljfangbr/>E-mail:[email protected]Mentor:Liu YouyuanTime:2018-3-24 message="Hello , Python World!" print("message") message="Hello, Python World! This language is Cool to learn well." print("message") run