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. IOS逆向-砸壳笔记

    本人ios10.3.1 iphone6越狱机.方案三个. 方案一.dumpdecrypted.dylib 1. ssh到越狱机上,看WeChat可执行文件在哪. # ps aux|grep WeCha ...

  2. vue2.0 技巧汇总

    /** * Created by */ export default { trim: (str) => { //删除左右两端的空格 return str.replace(/(^\s*)|(\s* ...

  3. stm32f0 学习

    http://blog.csdn.net/mrlixirong/article/category/5842873

  4. 开始学习Functional Programming

    打算先学F#, 再学Scala. 第一个F#程序 open System [<EntryPoint>] let main argv = let a = "Hello, World ...

  5. surface shader获取像素深度差值

    void vert (inout appdata_full v, out Input i) { UNITY_INITIALIZE_OUTPUT(Input, i); i.proj = ComputeS ...

  6. virtualbox 在物理机是无线网卡的时候做桥接配置

    在“计算机”图标上右键选择“管理”,在打开的“计算机管理”窗口中选择左侧的“设备管理器”,然后在右侧图示的地方右键选择“添加过时硬件”. 在打开的窗口中点击“下一步”. 选择“安装我手动从列表中选择的 ...

  7. 自己动手在win2003系统中添加虚拟网卡

    运用虚拟网卡我们可以更好地使用我们的网络,那么在win2003中该怎么操作呢?下面就为大家介绍下具体的步骤   虚拟网卡是用软件来实现虚拟的网卡,通过运用虚拟网卡我们可以更好地使用我们的网络.但是虚拟 ...

  8. dedecms调用子栏目及文章列表

    使用DEDECMS程序建网站时,有些栏目下面有子栏目,我们需要在网站前台调用出子栏目以及子栏目下的文章列表. dedecms调用子栏目及文章列表可以使用以下的代码进行调用: <div class ...

  9. [原]Jenkins(十七) jenkins再出发之配置SVN

    创建一个demo project 配置SVN: 配置build project

  10. Cookiecutter: 更好的项目模板工具:(2)安装及基础使用

    安装 通过python包管理工具 命令行输入 $pip install cookiecutter 或者 # mac os经常会禁止用户全局安装python包 $pip install --user c ...