kotlin 学习笔记(二)

基本数据类型

1.对于kotlin中的基本数据类型只有int short Long double float Byte ,可以看出没有我们java中的char类型 boolean 布尔类型

对于kotlin中的常量我们可以用“_”线来连接,便于我们阅读,所以这是一个kotlin比java高级的地方

比较两个数字

在kotlin中没有基本数据类型,只有被封装的数字类型,定义的一每一个变量,其实都封装成了一个对象,这样可以保证不会出现空指针,数字类型也一样,所有在比较连个数字的时候,就有比较数据大小和比较两个对象是否是同一个的区别,所以kotlin中设计出了,=== 比较对象的地址,== 比较两个数字的大小。

类型转换

由于不同的表示方式,较小类型并不是较大类型的子类型,较小类型不能隐式转换成较大的类型,这意味着在不进行显示转换的情况下我们不能把Byte类型赋值给一个Int变量,由于我们的类型都是经过装箱的,所以byte通过赋值后都会变成一个对象,那么我们就可以用对象中的方法toInt()来进行对Int变量进行赋值,我们的每种类型都有 toByte(),toShort(),toInt(),toLong(),toFloat(),toDouble(),toChar() 方法
有些情况下也是可以使用自动类型转换的

位操作符

对于Int和Long类型, 位操作符有如下

shl 左移位 如java中(a<<)
shr 右移位 如java中(b>>)
ushr 无符号右移位   java中(c>>>)
and 与运算   java中(a&b)
or  或运算   java中(a|b)
xor 异或运算 java总 (a^b)
inv 反向运算
字符

和java不一样,kotlin中的char不能直接和数字操作,Char 必须是单引号包含起来的,比如普通字符’a’
字符也是可以被转换成Int数字的,可以用’a’.toInt()

布尔

布尔用Boolean 类型表示 如果需要可空引用布尔会被装箱 和java中一样(|| 锻炼逻辑或 && 短路逻辑与 ! 逻辑非)

数组类型

数组用类Array实现,并且还有一个size属性 get set方法 由于使用[] 重载了get和set方法,所以我们可以通过下标很方便的获取或者设置数组对应位置的值
数组的创积分方式有两种:一种是使用函数arrayOf() ,另一种是使用工厂函数,

//使用arrayOf()方法创建的数组
val a=arrayOf(1,3,4)

//长度为3 ,i从零开始变化 0,1,2 而数组对应位置的值是对应位置下标乘2,所以数组的值为	//{0,2,4}
val b Array(3,{i->(i*2)})

数组是不型变得,所以没有经过装箱,所以效率更高些

字符串

在kotlin中String是不可变的,使用[]可以像数组一样获取指定位置的某个字符,可以通过for来进行循环,java中还要转换成char[]才能进行循环

在kotlin中支持使用三个引号来包含字符串,这种字符串是可以显示为多行的

val s="""哈哈哈哈哈哈哈哈
		哈哈哈哈哈哈哈哈哈哈哈
 """
 
 如果想要去掉字符串中的空格,我们可以使用trimMargin()方法去掉空格,可以使用|作为边界前缀,ru
 val ss="""
 |哈哈哈哈
 |哈哈哈哈哈
 |hhhh
 """
字符串模板

在kotlin中字符串中可以包含模板表达式,就像我们的java中使用String.format()来对一些变动字符串匹配一样。

val a=1000
val s="a=$a" //这样输出的就是 a=1000

//比如我们项目中需要有这么一段话,
//“今天的活跃用户有6人,还需要努力”
//那这个需求在java中实现出来就比较麻烦了,那如果在kotlin中实现起来就很简单 如:
var b=10000
val result="今天的活跃用户有$b人,还需要努力"//kotlin高级得不能再高级了
// 我们还可以这样做,假如data是一个对象,那我们还可以这样写
val result="今天的活跃用户有${data.count}人,还需要努力"//是不是很简单

原生的字符串和转义字符串内部都支持模板,如果你需要在原生字符串中显示这个$符号,这个符号是不支持反斜杠来进行转义的,可以使用如下

val price """
${'$'}998 //显示出来就是“$998”
"""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值