zoukankan      html  css  js  c++  java
  • 从零开始学Kotlin第三课

    kotlin函数和函数式表达式的简化写法:

    fun  main(args:Array<String>) {
        var result=add(2,5)
        println(result)
        ///简化--》2
    var i={x:Int,y:Int->x+y}
        var result2=i(2,5)
        println(result2)
    ///简化--》3
    var j:(Int,Int)->Int={x,y->x+y}
        var result3=j(2,5)
        println(result3)
    }
    
    ///简化--》1
    fun add(x:Int,y:Int)=x+y

     数据类型的转换

     人机交互: 两个!!是确保输入的数据一定不为null

     异常捕获:

     阶乘:

    import java.math.BigInteger
    
    fun  main(args:Array<String>){
        //大数的阶乘
        /*93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
    */
    println(fact(BigInteger("100")))
    
    }
    fun fact(num:BigInteger):BigInteger{
        if(num==BigInteger.ONE){
            return BigInteger.ONE
        }else{
            return num*fact(num-BigInteger.ONE)
        }
    }

     如果数据过多会导致栈溢出,可以用尾递归优化,java没有此优化方案

    fun  main(args:Array<String>){
        var result=0
        println(olladd(1000,result))
    }
    //尾递归优化,要求返回必须返回本身才能用。
    tailrec  fun olladd(num:Int,result:Int):Int{
        println("计算机第${num}次运算,result=${result}")
        if(num==0){
            return 1
        }else{
            return olladd(num-1,result+num)
        }
    }
  • 相关阅读:
    差分约束系统
    拓扑排序
    算法题笔记
    Pytorch学习笔记
    caffe增加新的layer
    跑实验技巧
    cmake & make入门
    CVPR2017_Learning Detailed Face Reconstruction from a Single Image
    Arxiv1801_PointCNN
    ICCV2015_Multi-view Convolutional Neural Networks for 3D Shape Recognition
  • 原文地址:https://www.cnblogs.com/q1359720840/p/10588652.html
Copyright © 2011-2022 走看看