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


scala> 3.
%   *   -   >    >>    ^              isInstanceOf   toChar     toFloat   toLong    toString   unary_-   |
&   +   /   >=   >>>   asInstanceOf   toByte         toDouble   toInt     toShort   unary_+    unary_~


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

- 在过滤框中输入 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


Ch01 基础 - 练习的更多相关文章

  1. ch01系统基础信息模块详解

    第1章 系统基础信息模块详解 1.1 系统性能信息模块 psutil 解决VMWare在Windows10的安装问题: 安装VC Redistributable 2017 解决虚拟机的上网问题:修改V ...

  2. ch01.深入理解C#委托及原理(转)

    ch01..深入理解C#委托及原理_<没有控件的ASPDONET> 一.委托 设想,如果我们写了一个厨师做菜方法用来做菜,里面有 拿菜.切菜.配菜.炒菜 四个环节,但编写此方法代码的人想让 ...

  3. HTML基础知识入门

    好的,我们开始吧,打开Eclipse,新建一个项目,就叫做Base吧,基础班的意思.注意哦,要建一个JavaWeb项目.右键,new,Dynamic Web Project,如果出来的菜单项没有,就点 ...

  4. 李航《统计学习方法》CH01

    CH01 统计学方法概论 前言 章节目录 统计学习 监督学习 基本概念 问题的形式化 统计学习三要素 模型 策略 算法 模型评估与模型选择 训练误差与测试误差 过拟合与模型选择 正则化与交叉验证 正则 ...

  5. 《Python数据分析》-Ch01 Python 程序库入门

    Ch01 Python 程序库入门   1.1 一些简要介绍: NumPy 是一个基础性的Python库,为我们提供了常用的数值数组和函数. SciPy是Python的科学计算库,对NumPy的功能进 ...

  6. C#基础学习笔记(个人整理)

    学习笔记 第一章:c#基础 一.程序设计语言的发展及历史 1.程序设计语言? 通俗也叫编程语言,实现人与机器交互的工具 2.历史 1)机器语言 : 0,1 2)汇编语言 : 包含一些机器语言,同时增加 ...

  7. 走进JavaWeb技术世界1:JavaWeb的由来和基础知识

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  8. 【Java基础】Java 语言概述

    Java 语言概述 主要应用场景 JavaEE.大数据.Android 开发方向. 基础知识概述 编程语言核心结构 变量.基本语法.分支.循环.数组.- Java 面向对象的核心逻辑 OOP.封装.继 ...

  9. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

随机推荐

  1. Linux中rz和sz命令用法详解

    http://www.111cn.net/sys/linux/67810.htm 在linux中rz 和 sz 命令允许开发板与主机通过串口进行传递文件了,下面我们就来简单的介绍一下rz 和 sz 命 ...

  2. 【ML入门系列】(二)分类与回归

    前言 在机器学习中,“分类”和“回归”这两个词经常听说,但很多时候我们却混为一谈.本文主要从应用场景.训练算法等几个方面来叙述两者的区别. 本质区别 分类和回归的区别在于输出变量的类型.分类的输出是离 ...

  3. JAVA并发编程——守护线程(Daemon Thread)

    在Java中有两类线程:用户线程 (User Thread).守护线程 (Daemon Thread). 所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称 ...

  4. 框架源码系列七:Spring源码学习之BeanDefinition源码学习(BeanDefinition、Annotation 方式配置的BeanDefinition的解析)

    一.BeanDefinition 1. bean定义都定义了什么? 2.BeanDefinition的继承体系  父类: AttributeAccessor: 可以在xml的bean定义里面加上DTD ...

  5. Go的json解析:Marshal与Unmarshal

    https://blog.csdn.net/zxy_666/article/details/80173288 https://www.jianshu.com/p/98965b3ff638

  6. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库——安装配置OPEN-SSH,设置主机节点之间免密互访

    配置root用户免密互访(为了方便,各台系统中使用统一的证书文件)一.安装Open-SSH 1,查询系统中是否安装了openssh [root@]# opm -qa |grep ssh 如已安装,则列 ...

  7. java生成txt文件,读txt文件

    1.方法1 public static void main(String[] args) { try { FileWriter fileWriter = new FileWriter("c: ...

  8. 【ORACLE】解锁scott帐号

    sqlplus / as sysdba;SQL> alter user scott account unlock;SQL> conn scott/grace

  9. 深入理解 Java 虚拟机之学习笔记(3)

    垃圾回收(Garbage Collection,GC ),GC的历史其实比Java久远,1960年诞生与MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言.当Lisp还在胚胎时期时,人们 ...

  10. C - Friends and Subsequences

    Mike and !Mike are old childhood rivals, they are opposite in everything they do, except programming ...