Kotlin基础学习---数据类型(一)

一、Boolean类型

二、Number数据类型

三、拆箱装箱与Char数据类型

四、基础数据类型转换与字符串


一、Boolean类型

Boolean类型没什么好说,无非就是两个值:truefalse,为什么要单独拿出来说呢,主要是和Number数据类型做区分。我们就用程序简单输出一下boolean变量的值

fun main(args: Array<String>) {
    val b1:Boolean = true
    val b2:Boolean = false
    println("b1的值:$b1  b2的值:$b2")
}

初次接触Kotlin的话,可能对上面的代码既陌生又熟悉,和Java很像但是又不同。我简单介绍的说一下:

(1)上面的方法其实和Java中的Main方法是一个意思,参数也是一个字符串数据类型

(2)val这个关键字是变量的声明,之后的博客我会详细介绍这个关键字,b1b2是变量的名称,而Boolean是变量的类型,truefalse就是变量的值

(3)println是打印函数,快捷键和Java一样是sout

(4)$符号的作用是输出变量的值

所以上述代码输出如下

b1的值:true  b2的值:false

一般情况下,Kotlin中的Boolean相当于Java中基本数据类型boolean,至于在必要的情况的下话,才会装箱成Boolean。我们无需关心到底使用哪种类型,因为Kotlin的编译器会帮我们做决定

二、Number数据类型

Number数据类型
分类类型位宽
浮点型Double64
Float32
整型Long64
Int32
Short16
字节Byte8

 

上表中就是Number数据类型的信息,其实大家应该也都很熟悉了。下面我就用代码来输出一下各类型相关的值

(1)整型Int,长整型Long和短整型Short

//整型
val i:Int = 8
val i_16:Int = 0xFF
val i_2:Int = 0b0000_0011
val max_int:Int = Int.MAX_VALUE
val min_int:Int = Int.MIN_VALUE
//长整型
val l:Long=123
val l_max:Long=Long.MAX_VALUE
val l_min:Long=Long.MIN_VALUE
//短整型
val s:Short=12
val s_max:Short=Short.MAX_VALUE
val s_min:Short=Short.MIN_VALUE
fun main(args: Array<String>) {
    println("----------整型变量打印----------")
    println("i的值:$i")
    println("i的十六进制表达:$i_16")
    println("i的二进制表达:$i_2")
    println("整型的最大值:$max_int")
    println("整型的最小值:$min_int")
    println("----------长整型变量打印----------")
    println("l的值:$l")
    println("让普通整型变成长整型:"+123L)
    println("Long的最大值:$l_max")
    println("Long的最小值:$l_min")
    println("----------短整型变量打印----------")
    println("s的值:$s")
    println("Short的最大值:$s_max")
    println("Short的最小值:$s_min")
}

输出如下:

----------整型变量打印----------
i的值:8
i的十六进制表达:255
i的二进制表达:3
整型的最大值:2147483647
整型的最小值:-2147483648
----------长整型变量打印----------
l的值:123
让普通整型变成长整型:123
Long的最大值:9223372036854775807
Long的最小值:-9223372036854775808
----------短整型变量打印----------
s的值:12
Short的最大值:32767
Short的最小值:-32768

需要注意的是,让普通整型数据变成长整型数据,只需要在变量后面加一个L即可

(2)浮点型Float和双精度浮点型Double

//浮点型
val f1:Float=10f
val f2:Float=1E3f//表示10的三次方
val positive_f_max:Float = Float.MAX_VALUE
val positive_f_min:Float = Float.MIN_VALUE
val minus_f_max:Float = -Float.MIN_VALUE
val minus_f_min:Float = -Float.MAX_VALUE
//双精度
val d:Double=10.0
val positive_d_max:Double = Double.MAX_VALUE
val positive_d_min:Double = Double.MIN_VALUE
val minus_d_max:Double = -Double.MIN_VALUE
val minus_d_min:Double = -Double.MAX_VALUE
//双精度浮点型
fun main(args: Array<String>) {
    println("----------浮点型打印----------")
    println("f1的值:$f1")
    println("f2的值:$f2")
    println("Float最大正数值:$positive_f_max")
    println("Float最小正数值:$positive_f_min")
    println("Float最大负数值:$minus_f_min")
    println("Float最小负数值:$minus_f_max")
    println("----------双精度浮点型打印----------")
    println("d的值:$d")
    println("Double最大正数值:$positive_d_max")
    println("Double最小正数值:$positive_d_min")
    println("Double最大负数值:$minus_d_min")
    println("Double最小负数值:$minus_d_max")
}

输出如下

----------浮点型打印----------
f1的值:10.0
f2的值:1000.0
Float最大正数值:3.4028235E38
Float最小正数值:1.4E-45
Float最大负数值:-3.4028235E38
Float最小负数值:-1.4E-45
----------双精度浮点型打印----------
d的值:10.0
Double最大正数值:1.7976931348623157E308
Double最小正数值:4.9E-324
Double最大负数值:-1.7976931348623157E308
Double最小负数值:-4.9E-324

需要注意的是浮点型和双精度浮点型的区别在于:浮点型数据后有一个F

(3)字节类型Byte

val b:Byte=12
val b_max:Byte=Byte.MAX_VALUE
val b_min:Byte=Byte.MIN_VALUE
fun main(args: Array<String>) {
    println("b的值:$b")
    println("Byte的最大值:$b_max")
    println("Byte的最小值:$b_min")
}

输出如下,字节类型没什么好说

b的值:12
Byte的最大值:127
Byte的最小值:-128

三、拆箱装箱与Char数据类型

关于拆箱装箱的问题在介绍Boolean的时候已经说过了,具体的装箱和拆箱的操作Kotlin编译器会帮我们自动去做,我这里就不再赘述了

下面我们来说一下Char类型,我们用一段代码输出一下

val c1:Char ='0'
val c2:Char = '中'
val c3:Char = '\u0fff'
fun main(args: Array<String>) {
    println("c1的值:$c1")
    println("c2的值:$c2")
    println("c3的值:$c3")
}

输出如下:

c1的值:0
c2的值:中
c3的值:࿿

字符的表达有一对单引号''表示,c3变量表示Unicode字符,输出是一个乱码

除了上述普通的字符还有一类字符需要我们注意,就是转义字符

转义字符
转义字符含义
\t制表符
\b光标后退一个字符
\n回车
\r光标回到行首
\'单引号
\"双引号
\\反斜杠
\$

美元符号,Kotlin支持美元

符号开头的字符串模板


四、基础数据类型转换与字符串

基础数据类型转换

Kotlin不支持隐式转换,这个是和Java不一样的地方。在Java中,int类型的变量可以直接赋值给long类型的变量,而Kotlin却不行。那怎么办呢,看如下代码,需要调用一下toLong方法才可以。FloatDouble之间的转换也是一样。

    val i:Int = 5
    val l:Long = i.toLong()

字符串

Kotlin中字符串有多种赋值方式,如下

val s1:String="gzc"
val s2:String = String(charArrayOf('g','z','c'))

s1和s2的输出是一样的,都会输出gzc这个字符串,那字符串之间的该如何比较呢,如下

val s1:String="gzc"
val s2:String = String(charArrayOf('g','z','c'))
fun main(args: Array<String>) {
    println(s1== s2)//输出true
    println(s1=== s2)//输出false
}

代码中的注释为输出结果,s1==s2和Java中的结果完全不一样,正好相反。在Kotlin中==表示值的比较,而三个等号===才是引用对象的比较

字符串还有一个表达形式,那就是三对双引号,例如"""gzc"""。这样表达的字符串是原始字符串的意思,其中除了\$以外,其他的转义符号在字符串都会以原始字符串出现,如下

fun main(args: Array<String>) {
    val salary:String="100000"
    val s:String="""
        \t  \n  \$salary
    """
    println(s)
}

输出如下


        \t  \n  \100000
    

我们如果在字符串后添加trimIndent方法,输出又会不同

fun main(args: Array<String>) {
    val salary:String="100000"
    val s:String="""
        \t  \n  \$salary
    """.trimIndent()
    println(s)
}

输出

\t  \n  \100000

trimIndent的作用不言而喻

 

关于Kotlin数据类型的第一节就介绍完了,之后还有第二节

欢迎提问!欢迎纠错!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值