• 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

  • 相关阅读:
    java代码操作word模板并生成PDF
    接口httpClient 以及HttpClient与CloseableHttpClient之间的区别
    公司项目启动的时候连接数据库问题
    浏览器报400Bad Request异常
    数据库配置文件默认数据库连接设置
    代码中的mysql语法问题
    java代码实现文件的下载功能
    SringBoot启动报日志配置错误logback检测异常
    动态拼接手机号
    [面试] 面试官问你的职业生涯规划是什么,该如何回答?
  • 原文地址:https://www.cnblogs.com/TerryLiang/p/2616353.html
Copyright © 2020-2023  润新知