Ideal中如何关联scala源代码
ideal中用Attach sources
生成scala注释文档.
scaladoc -d ./doc hello.scala
变量常量
java中的常量定义 final int a =10 ;
程序执行过程中其值不可以改变。
Scala变量定义 :var a:Int=10;
定义变量的时候 显示类型:setting-typeannotation->local defination 打勾,
Constant 打勾
输入
def main(args: Array[String]): Unit = {
val str: String = StdIn.readLine("input your name")
println(str)
}
input your name hcb
hcb
数据类型
java基本类型8种:char,byte,short,int,long,float,double,boolean
Scala 数据类型:都是Any的子类, 分为数值类型AnyVal,引用类型AnyRef
整数类型:Byte-8位,Short-16位,Int-32位,Long-64位
浮点类型:Float-32位,Double-64位,
字符类型:Char
Unit类型:无值:与void等同, 只有一个实例值()
Null类型:一个实例值null
Nothing类型:是任何类型的子类型,异常发生时返回。
for循环
for (i<- 1 to 3){
println(i)
}
for (i<- 1 to 3;j <- 10 to 13){
println(i +"|||"+j)
}
#倒序
for (i<- 1 to 3 reverse){
println(i)
}
3
2
1
#contine 终止本次循环,继续下一次循环
#bread 跳出所有循环
#scala中 没有这两个关键字,要采用抛出异常的方式来处理。
#Breaks.break
函数与方法
函数:完成某个特殊功能的代码块
方法 :定义在类下面的函数,叫方法 ,可以支持重写,重载
def hi(s:String*):Unit={
println(s)
}
hi()
hi("11")
//输出结果
List()
WrappedArray(11)
高阶函数
函数可以做为值进行传递 。
def hi(s:String*):Unit={
println(s)
}
val ff: Seq[String] => Unit = hi
print(ff)
函数可以做为参数进行传递-匿名函数
def sum(a:Int,b:Int,op:(Int,Int)=>Int):Int={
op(a,b)
}
def op(a:Int,b:Int):Int={
a+b
}
print(sum(1,2,op))
函数可以做为返回值进行返回-函数嵌套。
def sum():()=>Unit={
def sum1():Unit={
println("sum1 invoke")
}
sum1 _
}
//调用 ,嵌套函数
sum()()
//output result
sum1 invoke
包不是约定源文件放在哪,而是说明编译之后生成的类在哪
带包编译
javac -d . Hello.java
import 导类不是导包。
import java.util._ //导入包下的所有类
屏蔽类
import java.sql.{Data=>,Array=>,_}
抽象类不能被实例化。 可以通过匿名子类的方式创建对象
IOC控制反转
原来创建对象是程序员自己创建的。
如创建一个员工对象,再创建一个部门对象,然后把这两个对象关联起来。
现在利用反射交给程序来做创建。
通过依赖注入的方式来维护,如果员工中有部分属性。 可以把员工所属的部门注入进去。
还不快抢沙发