kotlin基本语法(三)函数1.1

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
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值