1、累加 可以写1,2.3等或者写一个数组
//*号代表一个一个传值
println(sun(*intArrayOf(1,2,3,4,5)))
var a = 1..100;//1到100
val toList = a.toList()//转换成集合
//累加1..100
println(sun(*toList.toIntArray()));
//*号代表着分开传入
fun sun(vararg zhi:Int):Int{
var a = 1;
for (x in zhi) {
a += x
}
return a-1;
}
2、半径 r是自己随机写得一个数字
fun banjin(r:Double):Double{
val d = Math.PI * r * r
return d
}
3、函数套函数
private fun zuhehansu(width:Int,height:Int){
fun are(w:Int,h:Int):Int{
return w * h
}
var are1 = are(width,height)
println(are1)
}
4、参数名称
fun nameParam() {
val book = "基于kotlin的Android"
//在写代码的时候我们会看见一个提示 他们有着对应的值的位置
delFiles("hello",true,true,true)
//命名参数的好处可以更换参数的调用位置
delFiles(innoreCase= true,ext="hello",includeDirs=true,recursive=true)
//用于比较一个字符串中特定区域与另一特定区域
println(book.regionMatches(9,"深入Android",2,7,true))
}
fun delFiles(ext:String,innoreCase:Boolean,includeDirs:Boolean,recursive:Boolean){
valueOf(start = 2)
valueOf(1,end = 8)
}
fun valueOf(start:Int,end:Int= 100){//默认 参数
}
5、最大值
object MinValue{
operator fun invoke(a: Int,b: Int) = if(a > b ) a else b
operator fun invoke(x:Int ,y:Int,z:Int) = invoke(invoke(x,y),z)
}
6、操作符
//串可以包含模板表达式,即:可计算的代码片段,其结果链接到串中。模板表达式以美元符号($)开始,和简单的名字构成:
fun oprete() {//操作符
// 1+2;
println(1.plus(2))
val m = Matrix(8,8,8,8)
val n = Matrix(9,9,9,9)
val mn = m + n;
println("矩阵相加的结果是:$mn")
val mn2 = m.plus(n)
println("矩阵相加的结果是:$mn2")
/*!x x.not()
-y y.unaryMinus()*/
val boo = true
boo.not();
val num = 3
num.unaryMinus()
val numbers = arrayOf(5,6,7,8)
val a = 6 !in numbers
val b = !numbers.contains(6)
val i = numbers[0]
val get = numbers.get(0)
numbers.set(0,8)
}
class Matrix(val a: Int, val b: Int, val c: Int, val d: Int){
operator fun plus(m:Matrix):Matrix{
return Matrix(a + m.a,b + m.b,c+m.c,d+m.d)
}
}
class Matrix2(var a: Int, var b: Int, var c: Int, var d: Int){
operator fun plus(m:Matrix2):Matrix2{
return Matrix2(a + m.a,b + m.b,c+m.c,d+m.d)
}
operator fun set(horizontal: Int, vertical: Int, value: Int) {
val point = Pair(horizontal,vertical)
when(point){
Pair(0,0) -> this.a = value
Pair(0,1) -> this.b = value
Pair(1,0) -> this.c = value
Pair(1,1) -> this.d = value
else -> return
}
}
operator fun get(horizontal:Int,vertical: Int):Int{
val point = Pair(horizontal,vertical)
when(point){
Pair(0,0) -> return a
Pair(0,1) -> return b
else -> return 0
}
}