先来看一个简单的例子:
- //fun定义getChar函数,形参设置了默认值Hellofun getChar(x:String="Hello"):Char{ //:Char表示返回类型 return x[0]}fun main(args: Array) { var name="Wlxuh" println(getChar(name))}
复制代码
vararg关键字定义可变长参数,返回一个数组:
- /* vararg定义可变长参数, 这里我们是直接输出,没有直接返回,可以不写返回值类型, 实际kotlin有一个隐形的返回:Uint*/fun getList(vararg hex:Int){ for(x in hex){ println(x) }}fun main(args: Array) { getList(1,2,3)}
复制代码 [h2]几种特殊函数[/h2]
泛型函数,泛型函数是指在定义时不能明确输入参数类型,需要在调用时才能明确输入参数类型函数
定义泛型函数,需要在函数名前面加上,原形如下:
fun 函数名(参数):返回类型{
...
}
调用泛型函数:
函数名(参数)
例:- //这里参数?表示参数可为空fun strJoin(vararg name:T?):String{ var s="" for(x in name){ //不换输入什么类型,转换成字符串,进行拼接 s+=x.toString()+'\n' } return s}fun main(args: Array) { //调用参数Int型,加上 var s=strJoin(1,2,3) println(s) //调用参数Float,如下 //var s=strJoin(1.1,1.2,1.3)}
复制代码
内联函数
ps:这里的内联函数,博主也没太搞明白,有时间在补,抱歉!!!![]()
简化函数
在kotlin中对于比较简单的函数,可以使用=来代替花括号,如下:
- fun swap(n:Int):Int=if(n>5) n else n+1 //简化函数
复制代码
尾递归函数
尾递归函数是一种特殊的递归函数,指的是在末尾返回值调用自身函数,尾递归函数在头部添加tailrec告诉编译器,这是一个尾递归函数,提高性能。
[code]tailrec fun swap(n:Int):Int=if(n |
|