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控制反转

原来创建对象是程序员自己创建的。

如创建一个员工对象,再创建一个部门对象,然后把这两个对象关联起来。

现在利用反射交给程序来做创建。

通过依赖注入的方式来维护,如果员工中有部分属性。 可以把员工所属的部门注入进去。


本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论