前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kotlin数据类型

kotlin数据类型

作者头像
人不走空
发布2024-07-13 08:39:58
750
发布2024-07-13 08:39:58
举报
文章被收录于专栏:学习与分享

Kotlin基本数值类型

基本数据类型包括 Byte、Short、Int、Long、Float、Double

整数类型

类型

位宽

最小值

最大值

Byte

8

-128

127

Short

16

-32768

32767

Int

32

-2,147,483,648 (-2^31)

2,147,483,647 (2^31 - 1)

Long

64

-9,223,372,036,854,775,808 (-2^63)

9,223,372,036,854,775,807 (2^63 - 1)

代码语言:javascript
复制
val number =          100 //默认是 Int 类型
val bigNumber =       8000000000 //超过 Int 最大值默认是 Long 类型
val longNumber =      20L //数字后面显式加L,表示声明 Long 类型
val byteNumber:Byte = 1

Tips

所有未超出 Int 最大值的整型值初始化的变量都默认为Int类型,如果初始值超过了其最大值,那么推断为Long类型。在数字值后面显式添加L表示一个Long类型

Float、Double浮点类型

Kotlin 中提供了 FloatDouble 两种类型来分别表示单精度和双精度的浮点数类型。

类型

位宽

Float

32

Double

64*

代码语言:javascript
复制
val doubleNumber = 3.1415928888  //默认是Double类型
val floatNumber  = 3.1415928888f //尾部加f或F显式表示这是一个Float类型的浮点数

Tips

Kotlin 对于小数的默认推断是Double类型。如果需要显式将一个小数指定为Float类型需要在数值尾部加入fF。由于Float类型十进制位数是6位,所以上述例子中floatNumber实际值大小为3.1415926,后面就会出现进度丢失舍弃。

在 Kotlin 中还有一点与 Java 不同的是,Kotlin 中数字不存在隐式的拓宽转换。比如一个函数参数为Double 的函数只能接收 Double 类型,不能接收 FloatInt 或者其他数字类型

字符类型

在 Kotlin 中字符用 Char 类型表示

代码语言:javascript
复制
fun testChar(char: Char) {
    if(char == 4) {...}//此处会提示类型不匹配的异常
}

字符的值需要用单引号括起来: '0''9'

代码语言:javascript
复制
fun decimalDigitValue(c: Char): Int {
    if (c !in '0'..'9')
        throw IllegalArgumentException("Out of range")
    return c.toInt() - '0'.toInt() // 显式转换为数字
}
布尔类型

在 Kotlin 使用Boolean表示布尔类型,它只有两个值 truefalse。注意可空类型Boolean?类型会存在装箱操作。

代码语言:javascript
复制
val isVisible: Boolean = false

val isVisible = false    //自动推断为布尔Boolean类型
字符串类型

在 Kotlin 中字符串用 String 类型表示。字符串是不可变的。 字符串的元素——字符可以使用索引运算符访问: s[i]。 可以用 for 循环迭代字符串:

代码语言:javascript
复制
val str="1234567890"

for(char in str) {
    println(char)
}

字符串模板

字符串字面值可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成:

代码语言:javascript
复制
val number = 100
println("The Result is $number")

或者用花括号${}括起来的任意表达式:

代码语言:javascript
复制
val text = "This is Text"
println("Text length is ${text.length}")

字符串与转义字符串内部都支持模板。 如果你需要在原始字符串中表示字面值 $ 字符(它不支持反斜杠转义),你可以用下列语法:

代码语言:javascript
复制
val price = "${'$'}9.99"

和 Java 一样,Kotlin 可以用 + 操作符连接字符串。这也适用于连接字符串与其他类型的值。

代码语言:javascript
复制
val age = 28
println("I am " + age + "years old!")
println("I am $age years old!")

字符串的值

Kotlin 有两种类型的字符串字面值:转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。以下是转义字符串的一个示例:

代码语言:javascript
复制
val s = "Hello, world!\n"     // \n换行
val s2= "{\"key\":\"value\"}" // \反斜杠对""进行转义,保留字符串格式

字符串使用三个引号(""")分界符括起来,内部没有转义并且可以包含换行以及任何其他字符:

代码语言:javascript
复制
val text = """
    for (c in "foo")
        print(c)
"""

还可以通过 trimMargin() 函数去除前导空格:

代码语言:javascript
复制
val text = """
    |Tell me and I forget.
    |Teach me and I remember.
    |{"key1": "value1"}
    |{"key2": "value2"}
    """.trimMargin()

类型强制转换

在 Kotlin 中与 Java 不同是通过调用 toInt、toDouble、toFloat 之类函数来实现数字类型的强制转换的。

类型

强转函数

Byte

toByte()

Short

toShort()

Int

toInt()

Long

toLong()

Float

toFloat()

Double

toDouble()

Char

toChar()

代码语言:javascript
复制
val number =100   //声明一个整形 number对象
number.toString()
number.toByte()
number.toShort()
number.toLong()
number.toFloat()
number.toDouble()
....

数字运算

四则运算

除法/

代码语言:javascript
复制
val number = 3 / 2
println(number) // 输出 1

val floatNumber = 3 / 2.toDouble()
println(number) // 输出 1.5

乘法*

代码语言:javascript
复制
val number = 3 * 2
println(number) // 输出 6

加法+

代码语言:javascript
复制
val number = 3 + 2
println(number) // 输出 5

减法-

代码语言:javascript
复制
val number = 3 - 2
println(number) // 输出 1

取余%

代码语言:javascript
复制
val number = 3 % 2
println(number) // 输出 1
位运算

Kotlin 中的位运算和 Java 不同的是没有用特殊符号来表示,可以采用了中缀函数方式调用具名函数。

  • shl(bits) – 有符号左移【shl是Shift Logical Left的缩写】
  • shr(bits) – 有符号右移
  • ushr(bits) – 无符号右移
  • and(bits) – 位
  • or(bits) – 位
  • inv() – 位
  • xor(bits) – 位异或
代码语言:javascript
复制
val vip= true
val admin= false

val result = vip and(admin) =false 

val result = 8 ushr(2) = 2

AS4.0及以上版本kotlin项目无法运行java-main方法解决方案

<option name="delegatedBuild" value="false" />

Kotlin基本数值类型

基本数据类型包括 Byte、Short、Int、Long、Float、Double

整数类型

类型

位宽

最小值

最大值

Byte

8

-128

127

Short

16

-32768

32767

Int

32

-2,147,483,648 (-2^31)

2,147,483,647 (2^31 - 1)

Long

64

-9,223,372,036,854,775,808 (-2^63)

9,223,372,036,854,775,807 (2^63 - 1)

代码语言:javascript
复制
val number =          100 //默认是 Int 类型
val bigNumber =       8000000000 //超过 Int 最大值默认是 Long 类型
val longNumber =      20L //数字后面显式加L,表示声明 Long 类型
val byteNumber:Byte = 1

Tips

所有未超出 Int 最大值的整型值初始化的变量都默认为Int类型,如果初始值超过了其最大值,那么推断为Long类型。在数字值后面显式添加L表示一个Long类型

Float、Double浮点类型

Kotlin 中提供了 FloatDouble 两种类型来分别表示单精度和双精度的浮点数类型。

类型

位宽

Float

32

Double

64

代码语言:javascript
复制
val doubleNumber = 3.1415928888  //默认是Double类型
val floatNumber  = 3.1415928888f //尾部加f或F显式表示这是一个Float类型的浮点数

Tips

Kotlin 对于小数的默认推断是Double类型。如果需要显式将一个小数指定为Float类型需要在数值尾部加入fF。由于Float类型十进制位数是6位,所以上述例子中floatNumber实际值大小为3.1415926,后面就会出现进度丢失舍弃。

在 Kotlin 中还有一点与 Java 不同的是,Kotlin 中数字不存在隐式的拓宽转换。比如一个函数参数为Double 的函数只能接收 Double 类型,不能接收 FloatInt 或者其他数字类型

字符类型

在 Kotlin 中字符用 Char 类型表示

代码语言:javascript
复制
fun testChar(char: Char) {
    if(char == 4) {...}//此处会提示类型不匹配的异常
}

字符的值需要用单引号括起来: '0''9'

代码语言:javascript
复制
fun decimalDigitValue(c: Char): Int {
    if (c !in '0'..'9')
        throw IllegalArgumentException("Out of range")
    return c.toInt() - '0'.toInt() // 显式转换为数字
}
布尔类型

在 Kotlin 使用Boolean表示布尔类型,它只有两个值 truefalse。注意可空类型Boolean?类型会存在装箱操作。

代码语言:javascript
复制
val isVisible: Boolean = false

val isVisible = false    //自动推断为布尔Boolean类型
字符串类型

在 Kotlin 中字符串用 String 类型表示。字符串是不可变的。 字符串的元素——字符可以使用索引运算符访问: s[i]。 可以用 for 循环迭代字符串:

代码语言:javascript
复制
val str="1234567890"

for(char in str) {
    println(char)
}

字符串模板

字符串字面值可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成:

代码语言:javascript
复制
val number = 100
println("The Result is $number")

或者用花括号${}括起来的任意表达式:

代码语言:javascript
复制
val text = "This is Text"
println("Text length is ${text.length}")

字符串与转义字符串内部都支持模板。 如果你需要在原始字符串中表示字面值 $ 字符(它不支持反斜杠转义),你可以用下列语法:

代码语言:javascript
复制
val price = "${'$'}9.99"

和 Java 一样,Kotlin 可以用 + 操作符连接字符串。这也适用于连接字符串与其他类型的值。

代码语言:javascript
复制
val age = 28
println("I am " + age + "years old!")
println("I am $age years old!")

字符串的值

Kotlin 有两种类型的字符串字面值:转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。以下是转义字符串的一个示例:

代码语言:javascript
复制
val s = "Hello, world!\n"     // \n换行
val s2= "{\"key\":\"value\"}" // \反斜杠对""进行转义,保留字符串格式

字符串使用三个引号(""")分界符括起来,内部没有转义并且可以包含换行以及任何其他字符:

代码语言:javascript
复制
val text = """
    for (c in "foo")
        print(c)
"""

还可以通过 trimMargin() 函数去除前导空格:

代码语言:javascript
复制
val text = """
    |Tell me and I forget.
    |Teach me and I remember.
    |{"key1": "value1"}
    |{"key2": "value2"}
    """.trimMargin()

类型强制转换

在 Kotlin 中与 Java 不同是通过调用 toInt、toDouble、toFloat 之类函数来实现数字类型的强制转换的。

类型

强转函数

Byte

toByte()

Short

toShort()

Int

toInt()

Long

toLong()

Float

toFloat()

Double

toDouble()

Char

toChar()

代码语言:javascript
复制
val number =100   //声明一个整形 number对象
number.toString()
number.toByte()
number.toShort()
number.toLong()
number.toFloat()
number.toDouble()
....

数字运算

四则运算

除法/

代码语言:javascript
复制
val number = 3 / 2
println(number) // 输出 1

val floatNumber = 3 / 2.toDouble()
println(number) // 输出 1.5

乘法*

代码语言:javascript
复制
val number = 3 * 2
println(number) // 输出 6

加法+

代码语言:javascript
复制
val number = 3 + 2
println(number) // 输出 5

减法-

代码语言:javascript
复制
val number = 3 - 2
println(number) // 输出 1

取余%

代码语言:javascript
复制
val number = 3 % 2
println(number) // 输出 1
位运算

Kotlin 中的位运算和 Java 不同的是没有用特殊符号来表示,可以采用了中缀函数方式调用具名函数。

  • shl(bits) – 有符号左移【shl是Shift Logical Left的缩写】
  • shr(bits) – 有符号右移
  • ushr(bits) – 无符号右移
  • and(bits) – 位
  • or(bits) – 位
  • inv() – 位
  • xor(bits) – 位异或
代码语言:javascript
复制
val vip= true
val admin= false

val result = vip and(admin) =false 

val result = 8 ushr(2) = 2

AS4.0及以上版本kotlin项目无法运行java-main方法解决方案

<option name="delegatedBuild" value="false" />

Kotlin基本数值类型

基本数据类型包括 Byte、Short、Int、Long、Float、Double

整数类型

类型

位宽

最小值

最大值

Byte

8

-128

127

Short

16

-32768

32767

Int

32

-2,147,483,648 (-2^31)

2,147,483,647 (2^31 - 1)

Long

64

-9,223,372,036,854,775,808 (-2^63)

9,223,372,036,854,775,807 (2^63 - 1)

代码语言:javascript
复制
val number =          100 //默认是 Int 类型
val bigNumber =       8000000000 //超过 Int 最大值默认是 Long 类型
val longNumber =      20L //数字后面显式加L,表示声明 Long 类型
val byteNumber:Byte = 1

Tips

所有未超出 Int 最大值的整型值初始化的变量都默认为Int类型,如果初始值超过了其最大值,那么推断为Long类型。在数字值后面显式添加L表示一个Long类型

Float、Double浮点类型

Kotlin 中提供了 FloatDouble 两种类型来分别表示单精度和双精度的浮点数类型。

类型

位宽

Float

32

Double

64

代码语言:javascript
复制
val doubleNumber = 3.1415928888  //默认是Double类型
val floatNumber  = 3.1415928888f //尾部加f或F显式表示这是一个Float类型的浮点数

Tips

Kotlin 对于小数的默认推断是Double类型。如果需要显式将一个小数指定为Float类型需要在数值尾部加入fF。由于Float类型十进制位数是6位,所以上述例子中floatNumber实际值大小为3.1415926,后面就会出现进度丢失舍弃。

在 Kotlin 中还有一点与 Java 不同的是,Kotlin 中数字不存在隐式的拓宽转换。比如一个函数参数为Double 的函数只能接收 Double 类型,不能接收 FloatInt 或者其他数字类型

字符类型

在 Kotlin 中字符用 Char 类型表示

代码语言:javascript
复制
fun testChar(char: Char) {
    if(char == 4) {...}//此处会提示类型不匹配的异常
}

字符的值需要用单引号括起来: '0''9'

代码语言:javascript
复制
fun decimalDigitValue(c: Char): Int {
    if (c !in '0'..'9')
        throw IllegalArgumentException("Out of range")
    return c.toInt() - '0'.toInt() // 显式转换为数字
}
布尔类型

在 Kotlin 使用Boolean表示布尔类型,它只有两个值 truefalse。注意可空类型Boolean?类型会存在装箱操作。

代码语言:javascript
复制
val isVisible: Boolean = false

val isVisible = false    //自动推断为布尔Boolean类型
字符串类型

在 Kotlin 中字符串用 String 类型表示。字符串是不可变的。 字符串的元素——字符可以使用索引运算符访问: s[i]。 可以用 for 循环迭代字符串:

代码语言:javascript
复制
val str="1234567890"

for(char in str) {
    println(char)
}

字符串模板

字符串字面值可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成:

代码语言:javascript
复制
val number = 100
println("The Result is $number")

或者用花括号${}括起来的任意表达式:

代码语言:javascript
复制
val text = "This is Text"
println("Text length is ${text.length}")

字符串与转义字符串内部都支持模板。 如果你需要在原始字符串中表示字面值 $ 字符(它不支持反斜杠转义),你可以用下列语法:

代码语言:javascript
复制
val price = "${'$'}9.99"

和 Java 一样,Kotlin 可以用 + 操作符连接字符串。这也适用于连接字符串与其他类型的值。

代码语言:javascript
复制
val age = 28
println("I am " + age + "years old!")
println("I am $age years old!")

字符串的值

Kotlin 有两种类型的字符串字面值:转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。以下是转义字符串的一个示例:

代码语言:javascript
复制
val s = "Hello, world!\n"     // \n换行
val s2= "{\"key\":\"value\"}" // \反斜杠对""进行转义,保留字符串格式

字符串使用三个引号(""")分界符括起来,内部没有转义并且可以包含换行以及任何其他字符:

代码语言:javascript
复制
val text = """
    for (c in "foo")
        print(c)
"""

还可以通过 trimMargin() 函数去除前导空格:

代码语言:javascript
复制
val text = """
    |Tell me and I forget.
    |Teach me and I remember.
    |{"key1": "value1"}
    |{"key2": "value2"}
    """.trimMargin()

类型强制转换

在 Kotlin 中与 Java 不同是通过调用 toInt、toDouble、toFloat 之类函数来实现数字类型的强制转换的。

类型

强转函数

Byte

toByte()

Short

toShort()

Int

toInt()

Long

toLong()

Float

toFloat()

Double

toDouble()

Char

toChar()

代码语言:javascript
复制
val number =100   //声明一个整形 number对象
number.toString()
number.toByte()
number.toShort()
number.toLong()
number.toFloat()
number.toDouble()
....

数字运算

四则运算

除法/

代码语言:javascript
复制
val number = 3 / 2
println(number) // 输出 1

val floatNumber = 3 / 2.toDouble()
println(number) // 输出 1.5

乘法*

代码语言:javascript
复制
val number = 3 * 2
println(number) // 输出 6

加法+

代码语言:javascript
复制
val number = 3 + 2
println(number) // 输出 5

减法-

代码语言:javascript
复制
val number = 3 - 2
println(number) // 输出 1

取余%

代码语言:javascript
复制
val number = 3 % 2
println(number) // 输出 1
位运算

Kotlin 中的位运算和 Java 不同的是没有用特殊符号来表示,可以采用了中缀函数方式调用具名函数。

  • shl(bits) – 有符号左移【shl是Shift Logical Left的缩写】
  • shr(bits) – 有符号右移
  • ushr(bits) – 无符号右移
  • and(bits) – 位
  • or(bits) – 位
  • inv() – 位
  • xor(bits) – 位异或
代码语言:javascript
复制
val vip= true
val admin= false

val result = vip and(admin) =false 

val result = 8 ushr(2) = 2

AS4.0及以上版本kotlin项目无法运行java-main方法解决方案

<option name="delegatedBuild" value="false" />

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kotlin基本数值类型
    • 整数类型
      • Float、Double浮点类型
        • 字符类型
          • 布尔类型
            • 字符串类型
            • 类型强制转换
            • 数字运算
              • 四则运算
                • 位运算
                • AS4.0及以上版本kotlin项目无法运行java-main方法解决方案
                • Kotlin基本数值类型
                  • 整数类型
                    • Float、Double浮点类型
                      • 字符类型
                        • 布尔类型
                          • 字符串类型
                          • 类型强制转换
                          • 数字运算
                            • 四则运算
                              • 位运算
                              • AS4.0及以上版本kotlin项目无法运行java-main方法解决方案
                              • Kotlin基本数值类型
                                • 整数类型
                                  • Float、Double浮点类型
                                    • 字符类型
                                      • 布尔类型
                                        • 字符串类型
                                        • 类型强制转换
                                        • 数字运算
                                          • 四则运算
                                            • 位运算
                                            • AS4.0及以上版本kotlin项目无法运行java-main方法解决方案
                                            领券
                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档