熬夜再战Android之修炼Kotlin-【类型转换】、【函数定义】、【匿名函数】、【可变参数】篇

1,473 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)

欢迎关注公众号【空名先生】获取更多资源和交流!

👉前提

当前环境

2021年10月8日最新下载2020.3.1 Patch 2 版本

👉实践过程

😜类型转换

这一点和Java是有一些区别的,不再有【String. valueOf】、【Integer.valueOf】这类转换函数,而是改成了【to】形式(直接变量后面点to出来)。如:  

  var Temp="1234"        var TempOne=Temp.toInt()
  • toByte(): Byte,转为字节
  • toShort(): Short,转为短整型
  • toInt(): Int,转为整型
  • toLong(): Long,转为长整型
  • toFloat(): Float,转为浮点型
  • toDouble(): Double,转为双浮点型
  • toChar(): Char,转为字符型

😜函数定义

默认的定义是这样的,【fun】关键字表明是函数定义

private fun methon(height: Int): Int { //类型都是在 : 后面(注意看冒号),变量在前
    return height+1;
}

也可以这样,函数可以直接利用【=】做赋值运算

private fun methon(height: Int): Int = height + 1;

除了上面,相比Java还多了一点:函数的返回支持判断语句操作,如下

fun  methonTwo(height:Int):String{
    return  if (height>10){
        "大于10走if"
    }else{
        "否则走else"
    }
}

而且像上面刚说的赋值符,也可以和判断形式结合,

private fun methon(height: Int): String = if (height > 10) {
    "大于10走if"
} else {
    "否则走else"
};

😜匿名函数

val stringLengthFunc: (String) -> Int = { input ->
        input.length
}

上例就是个匿名函数,接收一个String类型的参数,经匿名函数处理返回字符串的长度int类型,调用是这样的:

val stringLength: Int = stringLengthFunc("I Love Android")

注意,匿名中的input是随意写的,你也可以改成别的名,不是系统的特别关键字

😜可变参数

在Java中是 … 符号(注意三个点),Kotlin是【vararg】关键字

也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用。

有意思的是Java中是可变参数,但可变的是个数,类型需要一致。(如果有大佬知道类型也能可变,欢迎浏览讨论)

而Kotlin不仅仅支持个数,还支持不同的数据类型。

啊,写着写着,我突然想起来了,如果Java中可变参数写的是Object类型,那么调用的时候其实也可以传多类型啊。

image.png

👉其他

📢作者:小空和小芝中的小空

📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)

📢欢迎点赞👍收藏🌟留言📝