本人是在linux(Ubuntu)中对scala进行的编程学习
在linux中进入scala的方法:输入如下的代码
scala
即可
那么如何退出这个scala的编译器呢?输入如下的代码
:quit
helloword
object helloword {
def main(args : Array[String]{
println("hello")
}
}
执行如下的语句这个可以查看结果为
helloword.main(null)
在命令行输入如下的代码
1 + 3
按下回车会自动输出结果:
res0: int 4
scala会自动根据你的赋值的类型对你的结果进行判断,不用指定特意的类型, 与python类似。
输入如下的代码:
res0 + 1
按下回车结果为
res1:int 5
它可以调用res0的值,并对他执行相应的操作。
scala的变量定义
1:val 与java中的final类似
val dss = " dss"
按下回车键显示结果为
dss:String=dss
这里没有申明变量的类型,是因为它自己可以自动的识别。
val dss1:String="dss1"
按下回车结果:
dss1: String = dss1
2:var是可以改变的类型
var dss2= 111
回车 结果为
dss2:int=111
因为这个 var的声明的变量是可以改变的我们执行;
dss2= 222
dss2
结果为
dss2:int= 222
我们发现这个 dss2的值已经被改了!
我们在这里也可以使用代码来测试 一下这个val的变量是否可以改变
执行如下 哦代码
dss1 = 1234
按下回车发现报错了,我们可以看到val定义的变量是不能修改的
结果为
error:reassignment to val
dss1 = 222
输入如下的代码,如果我们要写100遍哦ba那么这个如何实现的呢?
我们可以使用 str * 100 的方法。str = ba即可与python 的字符串的乘法类似。
val str = "ba\n"
回车
str * 100
上面条语句str只能在前面,100只能在后面, 要不然会报错的
回车
结果为100个"ba";
scala既是函数式编程也是面向对象的编程语言!在scala中函数与类是同等重要的
无参数的函数 :
def dss=println("dss")
dss()
调用函数 dss()即可打印dss字符串,我们会发现这个dss的函数的返回类型是
()uint类型相当于java中void的类型,无返回值。
有参数的函数:
def max(x:Int,y:Int): Int={
if(x >y)x
else
y
}
max( 1,2)
结果为
2
scala中的whlie循环的代码
**定义数组**
var dss= Array(1,2,3,4)
var i =0
while(i< dss.length){
println(dss(i))
i+=1
}
(注意在scala中是不支持i++和++i这中格式的语句的,Scala 访问数组的语法是使用 () 而非 [] 。)
回车即可看到结果为
1
2
3
4
使用foreach和 for来进行迭代操作!
如下代码
foreach
dss.foreach(x=>println(x))
回车即可看到结果为
1
2
3
4
我们还可以将这个继续简化
dss.foreach(println)
结果和上面的一样!
for
for(x <- dss)
println(x)
结果与上面的一样的
使用类型参数化数组
使用new来创建这个数组
格式
val 数组名字 = new Array -[数组的类型]- (个数)
val da = new Array[String] (3)
(注意这里的 类型与java不同,scala的数组是[] 中写它 的类型 的,java是在<>中。
对数组进行赋值
da(0) = "da"
da(1) = "db"
da(2) = "dc"
完成数组的赋值。
da(1)
可以查看da(1)的值。
我们使用for循环来打印遍历
方法一:
for(i <- 0 to 2)
println( da(i))
结果为
da
db
dc
方法二
for(x <- da )
println(x)
方法三
da.foreach(println)
结果与上面的结果一样。
在这里我们也可以使用while循环来遍历。