把老师讲过的每个案例都重复写7次,在这里也和大家共勉。
一、函数的定义
1.无参数,无返回值
var定义的变量的值可以改变,val定义的变量的值不可以改变,是常量。
Scala编程时,在语句末尾可以不写分号,当然写上也可以。因为Scala语言设计者认为手指多按一个字符是件痛苦的事情。如果习惯了就好。
//7
package com.dt.scala.hello
object ScalaBasics{
def main(args : Array[String]) : Unit = {
doWhile()
//doWhile
}
def doWhile(){
var line = ""
do{
line = readLine()
println("Read = "+ line)
}while(line != "")
}
}
在main方法里调用的时候,doWhile 这样可以。没有参数的话一般都不写括号。这是Scala编程的惯例。readLine()这个方法来自Predef$这个类,scala程序默认导入的包中含有此类。
2.有参数,有返回值
def looper(x : Long, y : Long) : Long = {
var a = x
var b = y
while(a != 0){
val temp = a
a = b % a
b = temp
}
b
}
在main里调用 println(looper(100,298)) 输出2
二、流程控制
1.if流程控制
以下三种写法都可以(在main方法里,args是main方法的参数)
//1
var file = "scala.txt"
if(!args.isEmpty) file = args(0)
println(file)
//2
var file1 = if(!args.isEmpty) args(0) else "nihao.txt"
println(file1)
//3
println(if(!args.isEmpty) args(0) else "wohao.txt")
2.for循环流程控制
for(i <- 1 to 10) print(" " + i)
for(i <- 1.to(10)) print(" " + i)
输出 1 2 3 4 5 6 7 8 9 10
以上两种写法效果是一样的。第一种写法是第二种写法的略写。
在scala中,1是个对象,这个对象有个方法to().后面会详细讲解。
scala做到了一切皆对象,而java并没有,java并不是完全对象化的语言。
3.增强型for循环
var files = new java.io.File(".").listFiles()
for(file <- files) println(file)
输出
.\.cache-main
.\.classpath
.\.project
.\.settings
.\bin
.\src
4.静态代码块
object里的方法属性代码都是静态的,所以即使object里的代码没有被main调用,也会执行
var line = ""
do{
println("please input some words blow...")
line = readLine()
println("read: "+ line)
}while(line != "")
三、异常处理
val n = 99
try{
val half = if(n % 2 == 0) println(n/2) else throw new RuntimeException("n must be event")
}catch{
case e : Exception => println("the exception is "+ e.getMessage())
}finally{
}
catch捕获异常,用case匹配。
以上就是今天的内容,勉励大家把每个例子重复7次,基础就会很扎实,不要眼高手低,试一试就知道重复7次的效果了。感恩!
参考资料来源于 DT大数据梦工厂 Scala零基础实战经典第2课 由王家林老师讲解