【快学Scala】第 1 章 基础
来源:互联网 发布:安卓跑团dnd软件 编辑:程序博客网 时间:2024/06/02 00:39
内容要点
安装Scala,这个没有什么好说的,去官网下,然后点下一步,也不用配路径,反正我用的exe安装,路径已经配好了。
Scala中有特别区分值(val)和变量(var),而且声明时必须初始化。
val x, y = 100 // x=100, y=100var a, b : String = null
常用类型:Byte,Char,Short,Int,Long,Float,Double,Boolean。不区分基本类型和引用类型。就是说可以这样用↓↓↓ 厉害了。
1.to(10) // 生成Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
实际上Scala是把包装类型去掉了,转换由Scala编译器做。还有一些数据类型和String对应的扩展类(RichChar,RichInt,RichDouble,StringOps …),丧心病狂地添加了好多超有用的方法。
操作符归到方法一起,就是说你可以定义操作符。Scala不提供
++
和--
,只能用+=1
或者-=1
。导入包,以scala.开头的包可以省去前缀,即下面两种写法等同。
import scala.math._ // _等同于Java中的*import math._
Scala没有静态方法(…),但提供了单例对象和伴生对象(…什么鬼)。
apply方法是()操作符的重载,比如下面两种方法等同。
"Hello"(4) // 返回o"Hello".apply(4)
Scala也有自己的文档,Scaladoc,没事就瞅瞅吧。
练习
在Scala REPL中键入
3.
,然后按Tab键。有哪些方法可以被应用?在Scala REPL中,计算3的平方根,然后再对该值求平方。现在,这个结果与3相差多少?(提示:res变量是你的朋友。)
res变量是val还是var?
,,ԾㅂԾ,, 反正我用的val,既然不打算改变它的值就用val。Scala允许你用数字去乘字符串,去REPL中试一下
"carry" * 3
。这个操作做什么?在Scaladoc中如何找到这个操作?
首先,Java的String类肯定是不能这么用*操作符的,那么就是Scala中对应的扩展类StringOps里面定义的了。我们去Scaladoc中搜索一下,就找到啦↓↓↓10 max 2的含义是什么?max方法定义在哪个类中?
哪个类?还是去Scaladoc搜一下吧。用BigInt计算2的1024次方。
哦,忘了说BigInt(2)
可以产生一个BigInt对象,用的是BigInt伴生对象的apply方法,就不用写new啦。为了在使用
probablePrime(100, Random)
获取随机素数时不在probablePrime和Random之前使用任何限定符,你需要引入什么?
照例,搜一波
创建随机文件的方式之一时生成一个随机的BigInt,然后将它转换乘三十六进制,输出类似“dsfalkfjlksdajf”这样的字符串。查阅Scaladoc,找到在Scala中实现该逻辑的方法。
首先,要由BigInt转成一个字符串,那么我们可以看看BigInt的toString方法有没有重载的,忒么一下就找到了……真是没有成就感呀。在Scala中如何获取字符串的首字符和尾字符。
take、drop、takeRight和dropRight这些字符串函数是做什么用的?和substring相比,它们的优点和缺点有哪些?
优点和缺点……不知道。take(n)可以看成substring(0, n),即固定了一个起始位置。那么这些方法适合从头或者尾开始来截取字符串,substring适合任意位置截取。感觉take或者drop方法会用的比较多。
- 《快学Scala》 第1章 基础
- 快学Scala第1章--基础
- 【快学Scala】第 1 章 基础
- 《快学Scala》第1章 基础 练习
- 快学Scala第1章–基础 笔记
- 《快学scala》习题详解 第1章 基础
- 【书山有路】快学Scala 第1章
- 快学Scala(1) 基础
- 快学Scala-基础
- 快学Scala第5章--类
- 快学Scala第6章--对象
- 快学Scala第8章----继承
- 快学Scala第10章----特质
- 快学Scala第13章----集合
- 快学Scala第15章----注解
- 快学Scala第20章----Actor
- 《快学Scala》第3章 数组相关操作 练习
- 《快学Scala》第5章 类 练习
- Intellij IDEA svn的使用记录
- ubuntu安装caffe +gpu
- 修改PickerView选中行背景色
- android中WebView加载网页居中显示
- The Suspects
- 【快学Scala】第 1 章 基础
- 【python】tile函数
- Mastering Node.js pdf,epub,mobi
- @Valid
- java数据库连接池实现原理
- Cookie, LocalStorage 与 SessionStorage
- [刷题]Codeforces Round #420(Div. 2)
- java中的SPI机制
- TOMCAT原理详解及请求过程