1、在Scala REPL(read->evaluateion->print->loop)中,计算3的平方根,然后再对该值求平方。现在,这个结果与3相差多少?
def main(args: Array[String]): Unit = {
var a:Int = 3;
var b:Double = scala.math.sqrt(a);
var c:Double = b*b;
println(c-a)
}
提示:scala.math 找相应的方法
2、Scala语言的sdk是什么?
sdk是编译,调试scala的工具包
3、Scala环境变量配置及其作用。
将软件包的路径名配置到系统环境变量即可
为了方便系统在任何位置都可以定位到Scala软件
4、Scala程序的编写、编译、运行步骤是什么? 能否一步执行?
1)将 Scala 代码编写到扩展名为 Hello.scala 的文件中。
[ 说明: 比如将源码在目录 d:/scalademo下 ]
2)通过 scalac 命令对该 scala 文件进行编译,生成 .class 文件。[和javac类似]
3)命令行下 执行 scala Hello 就可以看到运行效果。
4)注意:scala Hello.scala 命令可以直接运行 Hello.scala 程序 [内部也会有编译和运行过程]
5、Scala程序编写的规则。
//对scala的基本的程序结构说明
//1. object 是一个关键字,表示一个伴生对象
//2. 如果该文件只出现了一个object HelloScala 就会在编译后两个.class文件
//3. 第一个文件是HelloScala.class 这个表示他的伴生类,但是空的.
//4. 第2个文件是HelloScala$.class 对应的是object HelloScala,但是本质是调用它对应的一个静态属性 MODULE$
//5. 这两个文件的关系和main函数的入口关系一会分析
object HelloScala {
// 1. def 表示一个方法或者一个函数
// 2. main 表示入口
// 3. args: Array[String] 表示形参,args 是形参名 Array[String] 是形参类型表示一个Array数组
// 4. :Unit 表示返回值类型为 Unit ,等价于java 的void
// 5. = 表示 后面写的是函数体/方法体, 它还有返回值类型推导的作用
def main(args: Array[String]):Unit = {
// 表示是 输出, 类似System.out.println("hello, scala世界!")
// 在scala 语句后,不需要带; //体现简洁
println("hello, scala世界!")
}
}
6、简述:在配置环境、编译、运行各个步骤中常见的错误
有错再加
7、如何检测一个变量是val还是var?
val修饰的变量不可改变 var修饰的变量可变
8、Scala允许你用数字去乘一个字符串,去REPL中试一下"crazy"*3。这个操作做什么?在Scaladoc中如何找到这个操作?
结果:crazycrazycrazy crazy自行打印了三遍
9、10 max 2的含义是什么?max方法定义在哪个类中?
比较10与2的大小 scala.collection.immutable.Range
10、用BigInt计算2的1024次方
var a:BigInt = 2;
var b = a.pow(1024)
println(b)
提示:在BigInt 找相应的方法
11、在Scala中如何获取字符串“Hello”的首字符和尾字符?
提示: 在String中找相应的方法
var a:String = "Hello";
var b:Char = a.charAt(0);
var c:Char = a.charAt(4);
println(b+" "+c)