2018年1月
Scala下划线“_”的用法
第一:初始化的时候。
object Sample {
var name:String=_
def main (args: Array[String]){
name="hello world"
println(name)
}
在这里,name也可以声明为null,例:var name:String=null。这里的下划线和null的作用是一样的。
第二:引入的时候。
import math._
object Sample {
def main (args: Array[String]){
println(BigInt(123))
}
}
这里的math._就相当于Java中的math.*; 即“引用包中的所有内容”。
第三:集合中使用。(最典型,最常用)
object Sample {
def main (args: Array[String]){
val newArry= (1 to 10).map(_*2)
println(newArry)
}
}
这里的下划线代表了集合中的“某(this)”一个元素。这个用法很常见,在foreach等语句中也可以使用。
第四:模式匹配。
object Sample {
def main (args: Array[String]){
val value="a"
val result= value match{
case "a" => 1
case "b" => 2
case _ =>"result"
}
println(result)
}
}
在这里的下划线相当于“others”的意思,就像Java switch语句中的“default”。
还有一种写法,是被Some“包”起来的,说明Some里面是有值的,而不是None。
object Sample {
def main (args: Array[String]){
val value=Some("a")
val result= value match{
case Some(_) => 1
case _ =>"result"
}
println(result)
}
还有一种表示队列
object Sample {
def main (args: Array[String]){
val value=1 to 5
val result= value match{
case Seq(_,_*) => 1
case _ =>"result"
}
println(result)
}
}
第五:函数中使用。
object Sample {
def main (args: Array[String]){
val set=setFunction(3.0,_:Double)
println(set(7.1))
}
def setFunction(parm1:Double,parm2:Double): Double = parm1+parm2
}
这是Scala特有的“偏函数”用法。
第六:元组Tuple。(如果这也算是的话)
object Sample {
def main (args: Array[String])={
val value=(1,2)
print(value._1)
}
}
第七:传参。
object Sample {
def main (args: Array[String])={
val result=sum(1 to 5:_*)
println(result)
}
def sum(parms:Int*)={
var result=0
for(parm <- parms)result+=parm
result
}
}
当函数接收的参数不定长的时候,假如你想输入一个队列,可以在一个队列后加入“:_*”,因此,这里的“1 to 5”也可以改写为:“Seq(1,2,3,4,5)”。这算是一个小的用法吧
IDEA导入jar包通用方法(不论是什么工具sbt,maven均可完美导入)
本人在使用SBT导入外部jar包,发现jar包导入后出现了,上锁的情况,
说明一般的导入方法不能试用SBT工具
介绍一种通用方法:
新建lib根目录包------->将包直接复制进去------>右键build as library ---->完美导入
(scala-actor)SBT使用笔记
使用SBT调试scala中Actor出现缺失的jar包,进而google科普了一下
默认情况下,sbt完全按照约定工作,会自动找到以下内容:
项目根目录下的源文件
src/main/scala 或 src/main/java 中的源文件
src/test/scala 或 src/test/java 中的测试文件
src/main/resources 或 src/test/resources 中的数据文件
lib 中的jar文件
更多笔记
https://flystarhe.github.io/2016/04/13/scala-sbt/
SBT官方文档网址
http://www.scala-sbt.org/0.13/docs/Library-Management.html#Explicit+URL
下载安装SBT
Simple Build Tool的简称, 是用Scala语言编写的优秀的build工具。 它使用Scala语言来编写build脚本,功能非常强大。它拥有一个插件体系,已经有很多插件可供使用,我们很快就会用到它们。SBT是用来build用Scala编写的软件的推荐方法,而且可能是学习本指南的最简单的方法。如果你决定使用SBT,请按下面的指示操作,否则可以跳过这一部分和下一部分内容。
要安装SBT并创建本指南的项目,最简单的方法见 https://github.com/harrah/xsbt/wiki/Setup。
现在我们需要创建我们的第一个Akka项目,你可以手动向build脚本中添加依赖,不过更简单的方法是使用下一部分中介绍的Akka SBT插件。
创建Akka SBT项目
如果你还没做过,那么现在就开始创建本指南所讲的SBT项目,所要做的是在你希望创建项目的目录下添加一个build.sbt 文件:
name := "My Project"
version := "1.0"
scalaVersion := "2.9.1"
resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
libraryDependencies += "com.typesafe.akka" % "akka-actor" % "2.0"