芬兰湾的科特林教程之基本数据类型

  

<强>芬兰湾的科特林教程之基本数据类型的学习

  

<>强基本类型

  

我们知道java的基本类型分为基本数据类型:

  
      <李> int普通整型李   <李>浮浮点型李   <李>字符字符型李   <李>短短整型李   <李>字节字节型李   <李>长长整型李   <李>双双精度   <李>布尔布尔型
      李   
  

和引用数据类型:

  
      <李>类类型类类型李   <李>接口类型接口类型李   <李>数组类型数组类型李   <李>空类型空类型李   
  

在芬兰湾的科特林中,所有变量的成员方法和属性都是一个对象。一些类型是内建的,因为它们的实现是优化过的,但对用户来说它们就像普通的类一样。在这篇中,我们将会讲到大多数的类型:数值,字符,布尔,以及数组。

  

<强>芬兰湾的科特林的数值类型

  

芬兰湾的科特林处理数值的方法和java很相似,比如,不存在隐式转换数值的宽度,并且在字面上有一些小小的不同。
  

  

芬兰湾的科特林提供了如下内建数值类型(和java很相似):
  

  

芬兰湾的科特林教程之基本数据类型

  

不知道你注意了没有:<强>字符在芬兰湾的科特林中不是数值类型
  

  

芬兰湾的科特林的数值类型的使用

  

数值类型的声明
  

  

1。变量定义
  var & lt;标识符比;:& lt;类型比;=& lt;初始化值比;
  常量定义
  val & lt;标识符比;:& lt;类型比;=& lt;初始化值在

  

可变变量,使用var修饰;不可变的变量(类似于Java中最后的),使用val修饰。而在变量类型后使用了问号,表示这个变量是空指针安全的
  

  

2。类型推导

  

你可能在其他语言中看到过类型推导。在Java里,我们需要自己声明类型,变量名,以及数值。在芬兰湾的科特林里,顺序有些不一样,你先声明变量名,然后是类型,然后是分配值。很多情况下,你不需要声明类型。一个字符串字面量足以指明这是个字符串类型。字符,整形,长整形,单浮点数,双浮点数、布尔值都是可以无需显性声明类型的。
  

        var字符串:字符串=" "   字符串var=" "   var char=' '      var int=1   var=0 l   var=0 f浮动   var双=0.0      之前      

只要芬兰湾的科特林可以推导,这个规则同样适用与其他一些类型。通常,如果是局部变量,当你在声明一个值或者变量的时候你不需要指明类型。在一些无法推导的场景里,你才需要用完整的声明变量语法指明变量类型。

  

看到var你是否联想到了我们在js开发中的变量声明,是不是感觉又从陌生回到了熟悉的面孔,那还在等什么赶快加入到学习的行列吧。
  

  

代码中使用声明:

        瓦尔:int # 63;=10000   val b:长# 63;=一个   var f:浮动# 63;=0 f   var d:双# 63;=0.0   之前      

<强>使用中转型注意:
  

  

显式转换
  

  

由于不同的表示,短类型不是长类型的子类型。如果是的话我们就会碰到下面这样的麻烦了

     //这是些伪代码,不能编译的   瓦尔:int # 63;=1//一个装箱过的Int (java.lang.Integer)   val b:长# 63;=//一个隐式装箱的长(java.lang.Long)   pritn (a==b)//很惊讶吧这次打印出的是“假的”   之前      

因此特性甚至值都会悄悄丢失掉
  

  

所以,短类型是不会隐式转换为长类型的。这意味着我们必须显式转换才能把字节赋值给整数

        val b:字节=1//好吧,文字静态检查   val我:Int=b//错误//我们可以通过显式转换把数值类型提升   val我:Int=b.toInt()//显式转换   之前      

每个数值类型都支持下面的转换:

        toByte():字节   toShort():短   toInt (): Int   toLong():长   toFloat():浮动   toDouble():增加一倍   toChar (): Char   之前      

隐式转换的缺席是很少提及,因为我们可以使用上下文推断出类型,并且算术运算会为合适的转换进行重载,比如1

芬兰湾的科特林教程之基本数据类型