读书人

scala(五)Learn CH7 Programming in S

发布时间: 2012-12-31 11:57:52 作者: rapoo

scala(5)Learn CH7 Programming in Scala from others
scala(5)Learn CH7 Programming in Scala from others
CH7 Build-in control structure
If statement
package com.sillycat.easyscala.lesson5

object TestIf {

def main(args: Array[String]): Unit = {
var filename = "default.txt"
println(args.isEmpty)
if (!args.isEmpty){
filename = args(0)
}
println("filename: " + filename)

//if statement will return the last sentence
val filename2 =
if (args.isEmpty) "default.txt" else args(0)
println ("filename2: " + filename2)
}
}

If statement has a return value.

For Statement
package com.sillycat.easyscala.lesson5

object TestFor {

def main(args: Array[String]): Unit = {
val files = (new java.io.File(".")).listFiles()
println("==========file names1 :")
for (file <- files) {
print(file + " ")
}
println();
println("==================================");

println("==========file names2 :")
for (f <- files) print(f + " ")
println();
println("====================================");

// 1 to 5 will return Range(1, 6)
// 1, 2, 3, 4, 5
println("==========numbers 1 :")
for (i <- 1 to 5) print(i + " ")
println();
println("=======================================");

// 0 until 5 will return Range(0, 5)
// 0, 1, 2, 3, 4
println("===========numbers 2: ");
for (i <- 0 until 5) print(i + " ")
println();
println("============================");

// multiple checkpoint
for (
file <- files if (file.getName.endsWith("bin"))
) println(file)

// for
for (
file <- files
if (file.isFile)
if (file.getName.endsWith("gitignore"))
) println(file)

//put all the matched files in array
val sfiles = for (
file <- files if (file.isFile)
) yield file

// files in array
for (i <- 0 to sfiles.length - 1){
print(sfiles(i))
}

}

}

Try Catch System almost the same to Java
package com.sillycat.easyscala.lesson5
import java.io.FileReader

object TestTry {

def main(args: Array[String]): Unit = {
var f = new FileReader("test.txt")
try {
// use the file
} catch {
case ex: java.io.FileNotFoundException =>
println(ex)
case ex: java.io.IOException =>
println(ex)
} finally {
f.close()
}
}

}

Match is much better than switch, not matter int, even string is working.
package com.sillycat.easyscala.lesson5

object TestMatch {

def main(args: Array[String]): Unit = {
val firstArg = if (!args.isEmpty) args(0) else ""
var n = 10000
var friend = "adsfadfasf"
firstArg match {
case "salt" =>
friend = "pepper"
n = 100
case "chips" =>
friend = "salsa"
n = 10
case "eggs" =>
friend = "bacon"
n = 1
//this is the default value
case _ =>
friend = "huh?"
n = 0
}
println(friend + n.toString());
}

}





references:
http://sillycat.iteye.com/blog/1536392

http://snowriver.org/blog/tag/scala/
http://snowriver.org/blog/2011/03/20/programming-in-scala-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0ch7-built-in-control-structure/

读书人网 >其他相关

热点推荐