初识Kotlin

导读

Kotlin是Google官方推出的Android开发语言,有了之前Android Studio的前车之鉴。毫无疑问无论是因为对新技术的好奇,还是因为Kotlin有一个强大的爹。Kotlin都是值得我们去学习的。所以让我们开始学习Kotlin。

Kotlin官方中文网站:https://www.kotlincn.net/

Kotlin基础学习

Kotlin内置类型表示数字
这里写图片描述

字面常量

Kotlin新颖的数字常量表示方式

val oneMillion = 1_000_000  //输出还是1000000
val creditCardNumber = 1234_5678_9012_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010

我们在官方文档会发现val 用来声明变量

val x: Int? = null #变量类型+?声明的是可空的
val y: Int = null  #这样写是错误的,初始化不能为空

这里写图片描述

表示方式

在官方文档中有这么一段:

注意数字装箱不必保留同一性:
val a: Int = 10000
print(a === a) // 输出“true”
val boxedA: Int? = a
val anotherBoxedA: Int? = a
print(boxedA === anotherBoxedA) // !!!输出“false”!!!

博主就想如果a声明为可空会怎样也就是val a: Int? = 10000

val a: Int? = 10000
print(a === a) 
val b: Int? = a
val anotherb: Int? = a
print(b===anotherb)

结果
这里写图片描述
博主未弄懂为什么产生这样的原因,有人知道可以解释一下。

显式转换

Kotlin不支持较小的类型* 隐式 *的转化为较大的类型

val b: Byte = 1 // OK, .琌....
val i: Int = b // ..

但是给出了显示转化函数
这里写图片描述
并且

val l = 1L + 3 #可以通过

运算

Kotlin⽀持数字运算的标准集,运算被定义为相应的类成员(但编译器会将函数调⽤优化为相应的指令)。

val x = (1 shl 2) and 0x000FF000 #运行结果为0

shl(bits) ‒ 有符号左移 (Java 的 << )
shr(bits) ‒ 有符号右移 (Java 的 >> )
ushr(bits) ‒ ⽆符号右移 (Java 的 >>> )
and(bits) ‒ 位与
or(bits) ‒ 位或
xor(bits) ‒ 位异或
inv() ‒ 位非
相等性检测:a == b 与 a != b
比较操作符:a < b 、 a > b 、 a <= b 、 a >= b
区间实例以及区间检测:a..b 、 x in a..b 、 x !in a..b

这里写图片描述
这里博主想了一下如果代码改成print(z in x..y)会是什么结果
这里写图片描述
结果false了- -

数组

Kotlin的数组创建很新颖

我们可以使.库函数 arrayOf() 来创建.个数组并传递元素值给它,这样 arrayOf(1, 2, 3) 创建了 array [1, 2, 3]。 或者,库函数
arrayOfNulls() 可以.于创建.个指定..、元素都为空的数组。
另.个选项是.接受数组..和.个函数参数的..函数,.作参数的函数能够返回给定索引的每个元素初始值:
// 创建.个 Array 初始化为 [“0”, “1”, “4”, “9”, “16”]
val asc = Array(5, { i -> (i * i).toString() })
解析: i分别取 0,1,2,3,4

Array可以创建不同类型的数据在同一个数组
例如

val x: Array<any> = arrayof(1,'a',2)

字符串

字符串可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符( :vali=10vals=i= i” // 求值结果为 “i = 10”
或者⽤花括号括起来的任意表达式:
val s = “abc”
val str = “ s.lengthis {s.length}” // 求值结果为 “abc.length is 3”
原⽣字符串和转义字符串内部都⽀持模板。 如果你需要在原⽣字符串中表⽰字⾯值 valprice= {'$’}9.99
“”“

个人感觉用来解决字符串和变量拼接的问题

欢迎提建议,大家共同交流,共同进步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值