从零开始学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) } }
---------------------------------------------------------------------------
国之殇,未敢忘!
南京大屠杀!
731部队!
以及核污染水排海等一系列全无人性的操作,购买他们的食品和为它们提供帮助只会更加变本加厉的害你,呼吁大家不要购买日本相关产品
昭昭前事,惕惕后人
吾辈当自强,方使国不受他人之侮!
---------------------------------------------------------------------------
作者:三号小玩家
出处:https://www.cnblogs.com/q1359720840/
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 版权信息