zoukankan      html  css  js  c++  java
  • Scala学习小小总结

    用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 }

     一个简单使用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   }

    4. 创建一个console app,只需要extends App就可以:

    1 object TestApp extends App {
    2   println("test")
    3 }

    5. 常用循环

     从0打印到5

    1     for (i <- 0 to 5) {
    2       println(i)
    3     }

    从0打印到4

    1     for (i <- 0 until 5) {
    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)

    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     }

    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)

     8.类的定义

    1 class Item(val id: String, val img Int, val imgheight: Int) {
    2 
    3 }

     当构造中没有使用val时,是无法获取对象对应属性;使用val只能get,使用var可以get和set

  • 相关阅读:
    MySQL中B+树索引的使用
    MySQL测试环境遇到 mmap(xxx bytes) failed; errno 12解决方法
    MySQL中Cardinality值的介绍
    MySQL Online DDL
    像编程一样写文章—Markdown
    并发模型—共享内存模型(线程与锁)示例篇
    并发模型之——共享内存模型(线程与锁)理论篇
    并发模型之——基本概念
    通讯协议之——字节序
    IntelliJ IDEA14.1中java项目Maven中没有配置JDK时的问题
  • 原文地址:https://www.cnblogs.com/TerryLiang/p/2616353.html
Copyright © 2011-2022 走看看