1、虽然println()是打印字符串的好方法,但你能找到一种不使用println来打印字符串的方法吗?此外,REPL支持哪些类型的数字、字符串和其他数据?
不使用 println 打印字符串的方法:
- 在Java中可使用
System.out.print()方法; - 在Python中可使用
sys.stdout.write()方法。
REPL支持的数据类型:
- 数字(整数、浮点数、复数等)
- 字符串
- 布尔值
- 列表
- 元组
- 集合
- 字典等。
2、在Scala REPL中,将22.5摄氏度的温度值转换为华氏度。转换公式为cToF(x) = (x * 9/5) + 32。
在Scala REPL中可通过如下操作进行转换:
- 先输入
val c = 22.5 - 接着输入
val f = (c * 9/5) + 32
此时变量 f 的值即为转换后的华氏度温度。
3、REPL可以使用 :load <文件> 命令从外部文件加载并解释Scala代码。创建一个名为Hello.scala的新文件,并添加一个能打印问候语的命令,然后从REPL中执行它。
创建一个名为 Hello.scala 的文件,在其中添加命令:
println("Hello, World")
然后启动Scala REPL,在REPL中运行:
:load Hello.scala
即可执行该文件。
4、在 Scala REPL 中,如何以“原始”模式加载外部 Scala 代码,并且操作完成后会有什么预期结果?
操作步骤为:
- 输入
:paste -raw并回车 - 粘贴外部 Scala 代码内容
- 退出“粘贴”模式后会看到问候语
5、编写一个新的摄氏度到华氏度的转换程序(使用公式 (x * 9/5) + 32),将转换的每一步保存到单独的值中。你预计每个值的类型是什么?
本题可按如下步骤完成:
- 定义摄氏度值;
- 计算
(x * 9/5); - 计算
(x * 9/5) + 32。
若 x 为整数类型(如 Int ),则 (x * 9/5) 为整数类型, (x * 9/5) + 32 也为整数类型;
若 x 为浮点类型(如 Double ),则 (x * 9/5) 为浮点类型, (x * 9/5) + 32 也为浮点类型。
示例代码如下:
val celsius: Int = 20
val step1 = celsius * 9 / 5
val fahrenheit = step1 + 32
这里 celsius 、 step1 、 fahrenheit 类型均为 Int 。
若 celsius 定义为 Double 类型,如:
val celsius: Double = 20.0
则各值类型为 Double 。
6、修改摄氏度到华氏度的转换公式,使其返回整数而非浮点数。
可在原公式 $(x * 9/5) + 32$ 计算结果基础上使用 Scala 的 toInt 方法将结果转换为整数,例如:
val c = 22.5
val f = ((c * 9/5) + 32).toInt
7、使用输入值2.7255,生成字符串 “You owe $2.73.”。这可以通过字符串插值实现吗?
可以,示例代码如下:
scala> val amount = 2.7255; println(s"You owe $${f"$amount%.2f"}.")
使用字符串插值时,先定义值 amount ,然后用 f 插值器将 amount 格式化为两位小数,就能生成所需字符串。
8、以下代码是否有更简单的写法?val flag: Boolean = false; val result: Boolean = (flag == false)
有,可简化为val flag = false; val result =!flag

最低0.47元/天 解锁文章
905

被折叠的 条评论
为什么被折叠?



