- 一、数值类型
- 1. 基本数据类型
- 2. 进制数
- 3. 数字类型字面常量的下划线
- 4. 装箱与拆箱
- 5. 转换
- 6. 位运算符
- 二、布尔类型(Boolean)
- 1. 关键字
- 2. 逻辑操作符
- 三、字符型(Char)
- 1. 关键字
- 2. 显示转换为其他类型
- 3. 字符转义
- 四、字符串类型(String)
- 五、四则运算
- 1. 除法 / :
- 2. 乘法 * :
- 3. 加法 + :
- 4. 减法 - :
- 5. 取余 % :
- 六、数组型(Array)
- 1. arrayOf()
- 2. arrayOfNulls()
- 3. 工厂函数
- 4. 原始类型数组
Kotlin 整型数据类型包括 Byte、Short、Int、Long、Float、Double
Kotlin 中提供了
Float
和 Double
两种类型来分别表示单精度和双精度的浮点数类型。 提示:如果需要保留小数点后面六位以内我们就用
Float
;如果需要保留小数点后面六位以上我们就要用 Double
。
例子:
fun main() {
numberType()
}
private fun numberType() {
val a: Byte = 2
val b: Short = 2
val c: Int = 2
val d: Long = 2L //长整型由大写字母L标记
val e: Float = 2.0f //单精度浮点型由小写字母f或大写字符F标记
val f: Double = 2.0
println(" a => $a \n b => $b \n c => $c \n d => $d \n e => $e \n f => $f ")
}
输出结果:
例子:
fun main() {
// numberType()
baseNumber()
}
private fun baseNumber() {
// ps:Kotlin不支持八进制数
var g = 0x0F //十六进制数
var h = 0b00001011 //二进制数
var k = 123 //十进制数
println(" g => $g \n h => $h \n k => $k")
}
输出结果:
作用:分割数字进行分组,使数字常量更易读
例子:
fun main() {
baseLineNumber()
}
private fun baseLineNumber() {
val oneMillion = 1_000_000
val creditCardNumber = 1234_5678_9012_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010
println("oneMillion => $oneMillion")
println("creditCardNumber => $creditCardNumber")
println("socialSecurityNumber => $socialSecurityNumber")
println("hexBytes => $hexBytes")
println("bytes => $bytes")
}
输出结果:
在 Kotlin 中,存在数字的装箱,但是不存在拆箱。因为 Kotlin 是没有基本数据类型的,Kotlin 是万般皆对象的原则。故不存在和 Java
中的类似 int
是数据类型,Integer
是整型的引用类型。
例子:
fun main() {
box()
}
private fun box() {
val numValue: Int = 127
//装箱的过程
val numValueBox : Int? = numValue
println("装箱后: numValueBox => $numValueBox")
}
输出结果:
- 显示转换
例子:
fun main() {
displayTrans()
}
private fun displayTrans() {
val numA: Int = 97
println(numA.toByte())
println(numA.toShort())
println(numA.toInt())
println(numA.toFloat())
println(numA.toDouble())
println(numA.toLong())
println(numA.toChar())
println(numA.toString())
}
输出结果:
- 隐式转换
例子:
fun main() {
implicitTrans()
}
private fun implicitTrans() {
val num = 30L + 12
print(num)
}
输出结果:
42
6. 位运算符Kotlin 中的位运算和 Java 不同,是没有特殊符号来表示,可以采用中缀函数方式调用具名函数。
shl(bits)
-有符号左移 【shl 是 Shift Logical Left 的缩写】shr(bits)
- 有符号右移ushr(bits)
- 无符号右移and(bits)
- 位与or(bits)
- 位或inv(bits)
- 位非xor(bits)
- 位异或
例子:
fun main() {
bitOperation()
}
private fun bitOperation() {
val operaNum: Int = 4
val shlOperaNum = operaNum shl(2)
val shrOperaNum = operaNum shr(2)
val ushrOperaNum = operaNum ushr(2)
val andOperaNum = operaNum and(2)
val orOperaNum = operaNum or(2)
val xorOperaNum = operaNum xor(2)
val invOperaNum = operaNum.inv()
println("shlOperaNum => $shlOperaNum \n " +
"shrOperaNum => $shrOperaNum \n " +
"ushrOperaNum => $ushrOperaNum \n " +
"andOperaNum => $andOperaNum \n " +
"orOperaNum => $orOperaNum \n " +
"xorOperaNum => $xorOperaNum \n " +
"invOperaNum => $invOperaNum")
}
输出结果:
Boolean
关键字表示布尔类型,并且其值有 true
和 false
例子:
fun main() {
booleanType()
}
private fun booleanType(){
/*
定义:
*/
val isNum: Boolean = false
println("isNum => $isNum")
}
输出结果为:
isNum => false
2. 逻辑操作符例子:
fun main() {
booleanType()
}
private fun booleanType(){
/*
操作运算符
' || ' => 逻辑或(或者)
' && ' => 逻辑与(并且)
' ! ' => 逻辑非(取反)
*/
val a: Boolean = false
val b: Boolean = true
var result: Boolean
/* 逻辑或操作 */
if (a || b){
result = a || b
println("a || b => $result")
}
/* 逻辑与操作 */
if (a && b){
result = a && b
println("a && b => $result")
}
/* 逻辑非操作 */
result = !a
println("!a => $result")
result = !b
println("!b => $result")
}
输出结果为:
a || b => true !a => true !b => false
三、字符型(Char) 1. 关键字Char为表示字符型,字符变量用单引号(‘ ’)表示。并且不能直接视为数字,不过可以显式转换为数字。 例子:
fun main() {
charType()
}
/**
* 字符型
*/
private fun charType(){
//字符由Char类型表示,它不能直接同视为数字,不过可以显示转换
val char1: Char = 'a'
//char1 = 1 //=> 这句代码会直接出错
println("char1 => $char1")
}
输出结果:
char1 => a
2. 显示转换为其他类型例子:字符型的变量不仅可以转换为数字,同时也可转换为其他类型
fun main() {
charType()
}
/**
* 字符型
*/
private fun charType(){
val char1: Char = 'a'
val val1 = char1.code.toByte()
val val2 = char1.code.toInt()
val val3 = char1.toString()
val val4 = char1.code.toFloat()
val val5 = char1.code.toShort()
println("val1 => $val1 \n val2 => $val2 \n val3 => $val3 \n val4 => $val4 \n val5 => $val5")
}
输出结果:
var1 => 97 var2 => 97 var3 => a var4 => 97.0 var5 => 97
例子:除了可以转换类型外,当变量为英文字母时还支持大小写转换。
fun main() {
charType()
}
/**
* 字符型
*/
private fun charType(){
val charA: Char = 'a'
val charB: Char = 'B'
val charNum: Char = '1'
var result: Char
// 转换为大写
result = charA.toUpperCase()
println("result => $result")
// 转换为小写
result = charB.toLowerCase()
println("result => $result")
//当字符变量不为英文字母时,转换无效
result = charNum.toLowerCase()
println("result => $result")
}
输出结果:
result => A result => b result => 1
3. 字符转义- \t => 表示制表符
- \n => 表示换行符
- \b => 表示退格键(键盘上的Back建)
- \r => 表示键盘上的Enter键
- \ => 表示反斜杠
- ’ => 表示单引号
- " => 表示双引号
- $ => 表示美元符号,如果不转义在kotlin中就表示变量的引用了
- 其他的任何字符请使用Unicode转义序列语法。例:‘\uFF00’
String
表示字符串类型。其是不可变的。所以字符串的元素可以通过索引操作的字符:str[index]
来访问。可以使用for
循环迭代字符串:
例子:
fun main() {
stringType()
}
/**
* 字符串类型
*/
private fun stringType(){
// 1. 字符串由String类型表示。并且其是不可变的。字符串的元素可以通过索引操作的字符:s[i]来访问。可以使用for循环迭代字符串:
val str: String = "kotlin"
println("str => $str")
//迭代
for (s in str){
print(s)
print("\t")
}
print("\n")
/*
2. 字符串字面量,在kotlin中有两种类型:
- 包含转义字符的字符串 转义包括('\t','\n'等)
- 包含任意字符的字符串 由三重引号包括(""" .... """)
*/
var str1: String = "hello\t\tkotlin"
println(str1)
str1 = "hello kotlin"
println(str1)
val str2 = """ fun main(args: Array){
println("我是三重引号引用的字符串,我可以包含任意字符")
} """
println(str2)
//可以使用trimMargin()函数删除前导空格 默认使用符号('|')作边距前缀,当然也可以使用其他字符。例:('>','
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?