Android-Kotlin-when&类型推断

实践是知识的母亲,知识是生活的明灯。这篇文章主要讲述Android-Kotlin-when& 类型推断相关的知识,希望能为你提供帮助。
Kotlin的when表达式
TextEngine 描述文字处理对象:

package cn.kotlin.kotlin_base02/** * 描述文字处理对象 * * val textContent 传入进来的文字内容 val是常量 */ class TextEngine(val textContent: String) {/** * 处理文字,然后返回 * 返回完整的字符串 */ fun getDoTextAction() : String { return """ 我来到一个非常美丽的公园,走着走着,就看到了${textContent}这个牌坊,这个牌坊中的${getTextContentCount(textContent)}个字是用漂亮的笔画写的 """ }/** * 把存入进来的textContent,转换成几个字 * 返回字符串 */ private fun getTextContentCount(textContent: String): String { var result = when(textContent.length) { 1 -> "一" 2 -> "二" 3 -> "三" 4 -> "四" 5 -> "五" 6 -> "六" else -> { "" + textContent.length } } return result }}

 
main测试方法:
package cn.kotlin.kotlin_base02fun main(args: Array< String> ) {var textEngine = TextEngine("皇后工天下") println(textEngine.getDoTextAction())var textEngine2 = TextEngine("风云帝王") println(textEngine2.getDoTextAction())var textEngine3 = TextEngine("阿巴黎大会公园") println(textEngine3.getDoTextAction())println("------------------------------------------------------")// -------------- when 的第一种用法 when(130.88) { 143.98 -> println("体重比较合格...") 130.88 -> println("体重中规中矩....") 100.32 -> println("体重轻了,太瘦了...") else -> println("体重数据未知...") }println("------------------------------------------------------")// -------------- when 的第二种用法 when(3) { 1 -> { println("我有三个人在给我干活....") } 2 -> { println("我看到2个人在看电影...") } 3 -> { println("三人行必有我吸烟....") } else -> println("没有人给我干活...") }println("------------------------------------------------------")// -------------- when 的第三种用法 var perosnCount = 30 var whenResult = when(perosnCount) { 10 -> "这个工作室${perosnCount}个人" 20 -> "这个工作室${perosnCount}个人" 30 -> "这个工作室${perosnCount}个人" 40 -> "这个工作室${perosnCount}个人" else -> "这个工作室 N个人在努力工作...." } println(whenResult)// when还有其他用法,暂未发现 // .... }

执行结果:
Android-Kotlin-when&amp;类型推断

文章图片

 
 
 
 
类型推断
类型推断是Kotlin内部自动处理的: 
类型推断(注意:类型推断 变量和常量是一样的,只要是第一次赋值,就内部就认为第一次的类型变量类型) 定义一个常量/变量,赋值为字符串类型,Kotlin内部就已经认为此常量/变量是字符串类型了 
Android-Kotlin-when&amp;类型推断

文章图片

package cn.kotlin.kotlin_base02/** * 类型推断(注意:类型推断 变量和常量是一样的,只要是第一次赋值,就内部就认为第一此的类型变量类型) */ fun main(args: Array< String> ) {/** * 定义一个常量,赋值为字符串类型,Kotlin内部就已经认为此aVal常量是字符串类型了 */ val aVal = "AAAAAAA"/** * 定义一个变量,赋值为字符串类型,Kotlin内部就已经认为此aVar变量是字符串类型了 */ var aVar = "ABCDEFT"// 在给aVar赋值为99,会报错,因为aVar已经是字符串类型了 // aVar = 99/** * 定义一个变量,赋值为整形类型,Kotlin内部就已经认为此bVar变量是整形类型了 */ var bVar = 1000// 在给bVar赋值为ABCD,会报错,因为bVar已经是整形类型了 // bVar = "ABCD"/** * 定义一个变量,赋值为浮点型类型,Kotlin内部就已经认为此cVar变量是浮点型类型了 */ var cVar = 988.22// 在给cVar赋值为100,会报错,因为cVar已经是浮点型类型了 // cVar = 100// ----------------------- /** * 以上没有指定变量类型,内部通过第一次赋值来决定类型的 * 而以下代码是,指定变量类型 */ var zVar : String = "ABCDEF" var z2Var : Int = 10000 var z3Var : Double = 564.45 var z4Var : Float = 1000.37f // ...... }

【Android-Kotlin-when& 类型推断】 

    推荐阅读