Kotlin学习(2)函数
函数声明:
fun plus(a:Int,b:String):Boolean{ //fun 函数名(参数名:参数类型,参数名:参数类型):返回值类型 println(a) return true //返回值 }
集合:
Kotlin可以使用Java声明集合的方法,也有自己的声明方式。
//Java方式 val a=ArrayList<Int>() //Kotlin方式 val b=arrayListOf<Int>()
顶层函数和属性:
Kotlin中没有static修饰符。
为了消除静态工具类,Kotlin可以将函数或者属性写在 .kt 文件中,类的外面。
类似于C语言中全局变量,如果是public属性(省略的话默认public),其他类可以直接使用这个变量(函数),不必声明。
扩展函数和属性:
Kotlin支持在原有类的外面扩展自己想要的方法,比如我想给String对象添加一个可以获得最后一个字母的方法,不需要再去写一个类继承String,然后添加方法。
fun main(args: Array<String>) { println("Kotlin".lastChar()) }
//扩展函数 fun String.lastChar():Char{ return this.get(this.length-1) }
//扩展属性
fun String.lastChar:Char
get()=get(length-1)
为了防止偶然的命名冲突,使用扩展函数需要导入扩展函数。
Kotlin中import可以导入一个类,也可以导入一个函数,比如扩展函数是Strings包中的顶层函数,可以 import Strings.lastChar ,当然也可以使用 * 来导入包中所有内容。
扩展函数必须是顶层函数。不能写在类内部。
扩展函数的静态属性决定了扩展函数不能被子类重写。
可变参数:
fun main(args: Array<String>) { bb(1,2,3,4,5) } fun bb(vararg a:Int){ for (i in a){ println(i) } }
局部函数:
Kotlin允许在函数内声明局部函数,用以避免大量的重复操作。