kotlin:数据类型|kotlin:数据类型,空值处理,读取键盘输入

  1. 导入/打开项目需选择.src上级目录
  2. idea里kotlin快捷键
main 主函数 = fun main(args: Array) { }
sout 控制台输出 = println( )
  1. var 可变的变量
    val 运行时的 不可变变量
    const val 相当于JAVA中的final
数据类型 kotlin没有包装数据类型,使用时自动转换.
基本数据类型8种首字母大写
数字类型不支持八进制.
二进制以0b开头,如0b0010.十六进制以0x开头,如0x300b
与java不同,范围小的类型不能直接赋值给范围大的类型
整型数范围可以用如下方面查看 fun main(args: Array) { var maxLong:Long = Long.MAX_VALUE var minLong:Long = Long.MIN_VALUE println(maxLong) println(minLong) } 类型转换可以使用 val m = 10 println(m.toLong())标准的赋值操作 val a:Int = 3 kotlin可以智能类型推断,一般可以写作 val a = 3

字符串
优先使用字符串模板或原始字符串而不是字符串连接
用"+"连接字符串与其他类型的值,需要表达式中的第一个元素是 字符串
普通字符串使用" ",如"男孩"
原样输出字符串使用""" """,保留定义时的格式
1.trimIndent去除空格,trimMargin去除指定字符 fun main(args: Array) { var pn = """ 南海 西沙 永兴岛 """.trimIndent() println(pn) }输出结果:南海 西沙 永兴岛

字符串比较
==和equals效果是一样的 比较地址用===

字符串截取substring
字符串分割split,可以多参数
fun main(args: Array) { val str1 = "张三.李四-王五" val split1 = str1.split(".", "-") println(split1) }输出结果:[张三, 李四, 王五]

元组数据
1.二元元组Pair
fun main(args: Array) { val pair = Pair("张三",20) val pair1 = "张三" to 20 val name1 = pair1.first } 输出结果: 张三

2.三元元组Triple
fun main(args: Array) { val triple = Triple("李四","男",30) val name = triple.first println(name) } 输出结果: 李四

空值处理 ??可空变量类型
val a:Int? = null
【kotlin:数据类型|kotlin:数据类型,空值处理,读取键盘输入】?!!非空断言
var age:String = null!!
  • 空安全调用符?.
    str?.toInt() 相当于
    if (str != null) { return str.toInt() }else{ return null }

??:Elvis操作符(猫王)
var ageInt:Int = age?.toInt()?:10
val str: String? = null val a: Int = str?.toInt() ?: -1 //如果结果为null 返回默认值不为null 返回当前结果 println(a)输出结果: -1

接收键盘输入readline()
fun main(args: Array) { var a:Int = readLine()?.toInt()?:0 var b:Int = readLine()?.toInt()?:0 var result = a+b println(result) }

    推荐阅读