Kotlin 的函数定义和使用 函数声明Kotlin 中的函数使用 fun 关键字声明 fun double(x: Int): Int {}函数用法调用函数使用传统的方法 val result = double(2)调用成员函数使用点表示法 Sample().foo() // 创建类 Sample 实例并调用 foo中缀表示法函数还可以用中缀表示法调用,当 他们是成员函数或扩展函数他们只有一个参数他们用 infix 关键字标注// 给 Int 定义扩展infix fun Int.shl(x: I…
今天来了解下scala的泛型 先让我们看下这段代码 class Triple[F,S,T](val first:F,val second: S,val third: T) val triple = new Triple("Spark",3,3.1415) val bigData = new Triple[String,String,Char]("Spark","Hadoop",'R') def getData[T](l…
1.不带参数,不返回值的函数 fun sum(){} 2.带参数,不带返回值的函数 fun sum(a:Int){} 3.带参数,带返回值的函数 fun sum(a:Int,b:Int) : Int{ return a+b} 4.将表达式作为函数体.返回值类型自动推断的函数 fun sum(a:Int,b:Int) = a+b 5.函数返回无意义的值 fun println(a: Int, b: Int) : Unit{ println("sum of $a and $b is ${a + b}…
fun main(arg: Array<String>) { var ints:Array<Int> = arrayOf(, , ) val any =Array<Any>(){} copy(ints,any)//编译错误,因为Array<Int>不是Array<Any>的子类型 } fun copy(from :Array<Any>,to:Array<Any>){ assert(from.size==to.size) f…
class box<T> (t :T){ var vlaue =t } fun main(arg: Array<String>) { val box1:box<Int> = box() val box2:box<String> = box("haha") println(box1.vlaue) print(box2.vlaue) }…
泛型的声明 与Java不同的是,Kotlin要求类型实参要么被显示的说明,要么能被编译器推导出来.因为Java在1.5版本才引入泛型,所以为了兼容过去的版本,可以不直接声明List类型的变量,而不说明类型. //下面两种是等价的 val readers = arrayListOf<String>() val readers:ArrayList<String>=arrayListOf() 泛型函数 // 第一处是类型形参声明,第二三处分别是接收者和返回类型使用了类型形参 fun &l…