源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Kotlin教程之基本数据类型

  • 时间:2020-05-12 07:52 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Kotlin教程之基本数据类型
[b]Kotlin教程之基本数据类型的学习[/b] [b]基本类型[/b] 我们知道java的基本类型分为基本数据类型: [list] [*]int 普通整型[/*] [*]float 浮点型[/*] [*]char 字符型[/*] [*]short 短整型[/*] [*]byte 字节型[/*] [*]long 长整型[/*] [*]double 双精度[/*] [*]boolean 布尔型 [/*] [/list] 和引用数据类型: [list] [*]class Type 类类型[/*] [*]interface Type 接口类型[/*] [*]array Type 数组类型[/*] [*]null Type 空类型[/*] [/list] 在 Kotlin 中,所有变量的成员方法和属性都是一个对象。一些类型是内建的,因为它们的实现是优化过的,但对用户来说它们就像普通的类一样。在这篇中,我们将会讲到大多数的类型:数值,字符,布尔,以及数组。 [b]Kotlin 的 数值类型[/b] Kotlin 处理数值的方法和 java 很相似。比如,不存在隐式转换数值的宽度,并且在字面上有一些小小的不同。 Kotlin 提供了如下内建数值类型(和 java 很相似): [img]http://files.jb51.net/file_images/article/201705/2017523100116841.png?201742310139[/img] 不知道你注意了没有:[b]字符在 Kotlin 中不是数值类型 [/b] Kotlin 的 数值类型 的使用 数值类型的声明 1 .变量定义 var <标识符> : <类型> = <初始化值> 常量定义 val <标识符> : <类型> = <初始化值> 可变变量,使用var修饰;不可变的变量(类似于Java中的final),使用val修饰。而在变量类型后使用了问号,表示这个变量是空指针安全的 2 .类型推导 你可能在其他语言中看到过类型推导。在 Java 里,我们需要自己声明类型,变量名,以及数值。在 Kotlin 里,顺序有些不一样,你先声明变量名,然后是类型,然后是分配值。很多情况下,你不需要声明类型。一个字符串字面量足以指明这是个字符串类型。字符,整形,长整形,单浮点数,双浮点数,布尔值都是可以无需显性声明类型的。
var string: String = ""
var string = ""
var char = ' '

var int = 1
var long = 0L
var float = 0F
var double = 0.0

只要 Kotlin 可以推导,这个规则同样适用与其他一些类型。通常,如果是局部变量,当你在声明一个值或者变量的时候你不需要指明类型。在一些无法推导的场景里,你才需要用完整的声明变量语法指明变量类型。 看到var 你是否联想到了我们在js开发中的变量声明,是不是感觉又从陌生回到了熟悉的面孔,那还在等什么赶快加入到学习的行列吧。 代码中使用声明:
val a: Int? = 10000
val b: Long? = a 
var f: Float? = 0F
var d: Double? = 0.0
[b]使用中转型注意: [/b] 显式转换 由于不同的表示,短类型不是长类型的子类型。如果是的话我们就会碰到下面这样的麻烦了
//这是些伪代码,不能编译的
val a: Int? =1 //一个装箱过的 Int (java.lang.Integer)
val b: Long? = a // 一个隐式装箱的 Long (java.lang.Long)
pritn ( a == b )// 很惊讶吧 这次打印出的是 'false'
因此特性甚至值都会悄悄丢失掉 所以,短类型是不会隐式转换为长类型的。这意味着我们必须显式转换才能把 Byte 赋值给 Int
val b: Byte = 1 // OK, literals are checked statically
val i: Int = b //ERROR
//我们可以通过显式转换把数值类型提升
val i: Int = b.toInt() // 显式转换
每个数值类型都支持下面的转换:
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
隐式转换的缺席是很少提及,因为我们可以使用上下文推断出类型,并且算术运算会为合适的转换进行重载,比如1
val l = 1.toLong + 1 //Long + Int => Long
[b]Char字符[/b] 由于不是数值类型,所以我们必须这样使用:
fun check(c: Char) {//函数先判断是不是Char类型
  if (c == 1) { //ERROR: 类型不匹配
    //...
  }
}
字符是单引号包起来的 ‘1','\n','\uFF00'。我们可以显示的把它转换为 Int 型
fun decimalDigitValue(c: Char): Int {
  if (c !in '0'..'9') 
    throw IllegalArgumentException("Out of range")
  return c.toInt() - '0'.toInt() //显示转换为数值类型
}
和数值类型一样,字符在空检查后会在需要的时候装箱。特性不会被装箱操作保留的。 [b]布尔类型[/b] 布尔值只有 true 或者 false+ 布尔值的内建操作包括
|| – lazy disjunction && – lazy conjunction
[b]结尾[/b] 好了Kotlin的基本数据类型的使用也是讲完了,学习是我们前进的不竭动力。下一篇我们来讲Kotlin引用数据类型的使用。 Come on,enjoy it.  
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部