Ch01 基础 - 练习

1. 在Scala REPL 中键入3.,然后按Tab键。有哪些方法可以被应用?

scala> 3.

%   *   -   >    >>    ^              isInstanceOf   toChar     toFloat   toLong    toString   unary_-   |

&   +   /   >=   >>>   asInstanceOf   toByte         toDouble   toInt     toShort   unary_+    unary_~

来源: <http://tool.oschina.net/highlight>

2. 在Scala REPL中,计算3的平方根,然后再对该值求平方。现在,这个结果与3相差多少?(提示:res变量是你的朋友。)

scala> import scala.math._

import scala.math._

scala> sqrt(3)

res1: Double = 1.7320508075688772

scala> res1 * res1

res2: Double = 2.9999999999999996

scala> 3 - res2

res3: Double = 4.440892098500626E-16

3. res变量是val还是var?

res变量是val。

scala> res3=0

<console>:16: error: reassignment to val

       res3=0

           ^

4. Scala允许你用数字去乘字符串—去REPL中试一下 "crazy" * 3 。这个操作做什么?在Scaladoc中如何找到这个操作?

scala> "crazy" 3

res4: String = crazycrazycrazy


- 访问 http://www.scala-lang.org/api/current/#scala.collection.immutable.StringOps

- 在过滤框中输入 String

- 选择 StringOps

- 找到 * 方法,文档中的说明如下:

def *(n: Int): String

Return the current string concatenated n times.


5. 10 max 2 的含义是什么?max 方法定义在哪个类中?

求整数中的较大者。max 方法定义在RichInt类中。

def max(that: Int): Int

Returns this if this > that or that otherwise.

Implicit information This member is added by an implicit conversion from Int to RichInt performed by method intWrapper in scala.LowPriorityImplicits.

Definition Classes RichInt → ScalaNumberProxy

6. 用BigInt计算2的1024次方。

scala>import scala.math._   // OR import math._

scala> pow(2,1024)

res8: Double = Infinity

scala> BigInt(2).pow(1024)

res9: scala.math.BigInt = 1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628

7. 为了在使用probablePrime(100, Random)获取随机素数时不在 probablePrime 和 Random 之前使用任何限定符,你需要引入什么?

scala> import scala.util.Random

import scala.util.Random

scala> import scala.math.BigInt._

import scala.math.BigInt._

scala> probablePrime(100,Random)

res12: scala.math.BigInt = 1220680273650327122886980473381

8. 创建随机文件的方式之一是生成一个随机的 BigInt,然后将它转换成三十六进制,输出类似"qsnvbevtomcj38o06ku1"这样的字符串。查阅Scaladoc,找到在Scala中实现该逻辑的办法。

从Scaladoc中,我找到BigInt的如下方法:

def toString(radix: Int): String

Returns the String representation in the specified radix of this BigInt.

在REPL中实验:

scala> probablePrime(100,Random)

res12: scala.math.BigInt = 1220680273650327122886980473381

scala> probablePrime(100,Random).toString(36)

res13: String = 2f1yebpp8l5ft8y2afh7

9. 在Scala中如何获取字符串的首字符和尾字符?

scala> val str = "Hello"

str: String = Hello

scala> str(0)

res14: Char = H

scala> str.head

res16: Char = H

scala> str.last

res17: Char = o

10. take、drop、takeRight和dropRight这些字符串函数是做什么用的? 和 substring相比,它们的优点和缺点都有哪些?

take、drop:从左边保留、去除n个字符

takeRight和dropRight:从右边保留、去除n个字符

和substring相比,它们的有点是更为简单直观,缺点是灵活性较substring欠缺。因为substring可以指定起始下标和终止下标(不包括)来获取子字符串。

def take(n: Int): String

Selects first n elements.

def takeRight(n: Int): String

Selects last n elements.

def drop(n: Int): String

Selects all elements except first n ones.

def dropRight(n: Int): String

Selects all elements except last n ones.

def substring(start: Int, end: Int): String

def substring(start: Int): String

来自为知笔记(Wiz)

时间: 2024-10-25 21:05:56

Ch01 基础 - 练习的相关文章

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

从头认识java-1.1 编程语言抽象过程以及java的基础特性

这一章节我们来简单的聊聊对象抽象的过程. 1.所有语言都提供抽象机制. 例如:a=1(下面都是举例子,里面所提及的内容有可能是错误的,因为笔者没学过机器码和汇编) 在机器码当中:1000100111011000 在汇编当中:mov a,1 在C语言当中:a=1 在java当中: class Test(){ a=1; } 从上面的不同的表示里面可以发现,语言都是在不断的抽象,从最开始的0和1,一直到java的创建一个对象然后在对象里面赋值,就是一个不断抽像的过程. 同时,也是编程语言努力把问题空间

零基础学python-1.6 错误的程序

这节来讨论一下当程序出现错误的时候是怎样的? 1.还是以上一章节的代码作为例子 print("hello world") print("i am ray") print("i love China \n" * 8) print("welcome to my class") print(over") 最后一句那里,明显少了一个双引号,点击F5或者Run Module之后,会出现下面情况 通过图片可以看见,红色的地方就是

Java注解(1)-注解基础

注解(Annotation)是在JAVA5中开始引入的,它为在代码中添加信息提供了一种新的方式.注解在一定程度上把元数据与源代码文件结合在一起,正如许多成熟的框架(Spring)所做的那样.那么,注解到底可以做什么呢? 1.注解的作用. 提供用来完整地描述程序所需要的信息,如编译期校验程序信息. 生成描述符文件,或生成新类的定义. 减轻编写"样板"代码(配置文件)的负担,可以使用注解自动生成. 更加干净易读的代码. 编译期类型检查. 2.Java提供的注解 Java5内置了一些原生的注

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

【Linux系列】【基础版】第四章 Shell基础之正则表达式

4. Shell基础之正则表达式     4.1 正则就是一串有规律的字符串         4.1 grep              4.1.1 格式: grep [-cinrvABC] 'word' filename             4.1.2 -c //count,表示行数             4.1.3 -i //不区分大小写             4.1.4 -n  //显示行号             4.1.5 -r  //遍历所有子目录             4

NumPy基础:数组和失量计算

NumPy : Numerical Python,是高性能科学计算和数据分析的基础包. 部分功能: ndarray:一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组: 用于对整组数据进行快速运算的标准数学函数(无需编写循环): 用于读写磁盘数据的工具以及用于操作内存映射文件的工具: 线性代数.随机数生成以及傅里叶变换功能: 用于集成C.C++.Fortran等语言编写的代码工具: 大部分数据分析应用关注的功能: 用于

css基础

css绝对是一个能够写到爆炸的东西,so,机智的小北方才不会写各种css样式具体的效果,相比之下更推荐大家记一些常用的key,至于效果,每次用的时候百度下就可以了, css的作用是对符合条件的标签进行渲染,那么首先就要匹配到对应标签啦,我萌有三种基础的模式来匹配希望改变样式的标签 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8">

零基础的人该怎么学习JAVA

对于JAVA有所兴趣但又是零基础的人,该如何学习JAVA呢?对于想要学习开发技术的学子来说找到一个合适自己的培训机构是非常难的事情,在选择的过程中总是 因为这样或那样的问题让你犹豫不决,阻碍你前进的步伐,今天就让小编为您推荐培训机构新起之秀--乐橙谷Java培训机构,助力你成就好未来. 选择java培训就到乐橙谷 北京有什么好的Java培训机构?来乐橙谷北京学Java,零基础走起,乐橙谷Java基础班授课老师经验非常丰富,课程内容安排合理,适合于有一点点Java基础甚至一点都不会Java的同学学