用Scala开发项目大概有4个月了,当初选择Scala的时候出于两点考虑:一是我对Java还比较熟悉,可以让我很快上手;二是Scala简洁的语法,可以让我少写很多代码。下面是本人的一些总结列表。
1.Scala的官方网站http://www.scala-lang.org/,Scala Eclipse的插件地址http://scala-ide.org/
2.推荐一篇写的很好的文章http://qiujj.com/static/Scala-Handbook.htm
3. 一个用于实现try finally关闭资源的trait
1 trait Disposable {
2 def using[T <: { def close(): Unit }](closable: T)(block: T => Unit) {
3 try {
4 block(closable)
5 } finally {
6 closable.close()
7 }
8 }
9 }
2 def using[T <: { def close(): Unit }](closable: T)(block: T => Unit) {
3 try {
4 block(closable)
5 } finally {
6 closable.close()
7 }
8 }
9 }
一个简单使用Disposable的例子:
1 def execute(dataSource: DataSource,sql: String) = {
2 using(dataSource.getConnection()) { conn =>
3 {
4 using(conn.prepareStatement(sql)) { st =>
5 {
6 st.execute()
7 }
8 }
9 }
10 }
11 }
2 using(dataSource.getConnection()) { conn =>
3 {
4 using(conn.prepareStatement(sql)) { st =>
5 {
6 st.execute()
7 }
8 }
9 }
10 }
11 }
4. 创建一个console app,只需要extends App就可以:
1 object TestApp extends App {
2 println("test")
3 }
2 println("test")
3 }
5. 常用循环
从0打印到5
1 for (i <- 0 to 5) {
2 println(i)
3 }
2 println(i)
3 }
从0打印到4
1 for (i <- 0 until 5) {
2 println(i)
3 }
2 println(i)
3 }
foreach的用法
1 val array = Array(0, 1, 2, 3, 4, 5)
2
3 array.foreach(i => println(i))
4 array.foreach(println(_))
5 array.foreach(println)
2
3 array.foreach(i => println(i))
4 array.foreach(println(_))
5 array.foreach(println)
6.打印Map元素
1 val map = Map(0 -> 0, 1 -> 1, 2 -> 2, 3 -> 3, 4 -> 4, 5 -> 5)
2
3 map.foreach {
4 case (key, value) => {
5 println("key:" + key + " value:" + value)
6 }
7 }
2
3 map.foreach {
4 case (key, value) => {
5 println("key:" + key + " value:" + value)
6 }
7 }
7.集合常用操作
+= 添加元素
++ 合并集合
drop(n) 移除前n个元素
take(n) 获取前n个元素
filter(condition) 获取指定condition的元素
1 val array1 = Array(0, 1, 2, 3, 4, 5)
2 val array2 = Array(6, 7, 8, 9)
3 val array3 = array1 ++ array2
4
5 array3.foreach(println)
6 array3.take(1).foreach(println)
7 array3.drop(1).foreach(println)
8 array3.filter(_ != 1).foreach(println)
2 val array2 = Array(6, 7, 8, 9)
3 val array3 = array1 ++ array2
4
5 array3.foreach(println)
6 array3.take(1).foreach(println)
7 array3.drop(1).foreach(println)
8 array3.filter(_ != 1).foreach(println)
8.类的定义
1 class Item(val id: String, val img Int, val imgheight: Int) {
2
3 }
2
3 }
当构造中没有使用val时,是无法获取对象对应属性;使用val只能get,使用var可以get和set
标签: scala