Kotlin - 基本类型

Kotlin - 基本类型 首页 / Kotlin入门教程 / Kotlin - 基本类型

在本章中,无涯教程将学习Kotlin编程语言中可用的基本数据类型。

Number

Kotlin中Number数字的表示与Java非常相似,但是Kotlin不允许内部转换不同的数据类型。下表列出了不同数字的不同可变长度。

类型宽度(大小)数据范围
Byte8位-128至127
Short16位-32768至32767
Int32位-2,147,483,648至2,147,483,647
Long64位-9,223,372,036,854,775,808至+ 9,223,372,036,854,775,807
Float32位1.40129846432481707E-45至3.40282346638528860e + 38
Double64位4.940656458412465442-324至1.79769313486231570e + 308

在以下示例中,无涯教程将看到Kotlin如何使用不同的数据类型。

fun main(args: Array<String>) {
   val a: Int = 10000
   val d: Double = 100.00
   val f: Float = 100.00f
   val l: Long = 1000000004
   val s: Short = 10
   val b: Byte = 1
   
   println("Your Int Value is "+a);
   println("Your Double  Value is "+d);
   println("Your Float Value is "+f);
   println("Your Long Value is "+l);
   println("Your Short Value is "+s);
   println("Your Byte Value is "+b);
}

当您在编码环境中运行以上代码时,它将在Web控制台中生成以下输出。

Your Int Value is 10000
Your Double  Value is 100.0
Your Float Value is 100.0
Your Long Value is 1000000004
Your Short Value is 10
Your Byte Value is 1

Characters

Kotlin使用 char 表示字符,字符应使用单引号声明,如'c' ,字符可以通过两种方式声明Kotlin变量  - 一种使用" var" ,另一种使用" val" 。

数据类型宽度(大小)数据范围
char4位-128至127
fun main(args: Array<String>) {
   val letter: Char    //定义一个变量
   letter = 'A'        //为其赋值
   println("$letter")
}

上面的代码将在浏览器输出窗口中产生以下输出。

无涯教程网

A

Boolean

使用type boolean 表示布尔数据。它包含true或false的值。

数据类型宽度(大小)数据值
boolean1位true或false
fun main(args: Array<String>) {
   val letter: Boolean  //定义一个变量
   letter = true        //赋值
   println("Your character value is "+"$letter")
}

上面的代码将在浏览器中产生以下输出。

Your character value is true

Strings

字符串是字符数组,像Java一样,它们本质上是不可变的。Kotlin中有两种可用的字符串 - 一种称为原始字符串(raw String),另一种称为转义字符串(escaped String)。

fun main(args: Array<String>) {
   var rawString :String  = "I am Raw String!"
   val escapedString : String  = "I am escaped String!\n"
   
   println("Hello!"+escapedString)
   println("Hey!!"+rawString)   
}

上面的转义字符串示例允许在第一个print语句之后提供额外的行空间。

Hello!I am escaped String!

Hey!!I am Raw String!

Arrays

数组是同类数据的集合,像Java一样,Kotlin支持不同数据类型的数组。

fun main(args: Array<String>) {
   val numbers: IntArray = intArrayOf(1 2 3 4 5)
   println("Hey!! I am array Example"+numbers[2])
}

上面的代码产生以下输出。在这里,无涯教程正在搜索第二个索引,其值为" 3"。

Hey!! I am array Example3

Collections

Kotlin有两种类型的集合 - 一种是不可变的集合(immutable),另一种是可变的集合(mutable)。

fun main(args: Array<String>) { 
   val numbers: MutableList<Int> = mutableListOf(1 2 3) //可变列表
   val readOnlyView: List<Int> = numbers                  //不可变列表
   println("my mutable list--"+numbers)        //prints "[1, 2, 3]" 
   numbers.add(4) 
   println("my mutable list after addition --"+numbers)        //prints "[1, 2, 3, 4]" 
   println(readOnlyView)     
   readOnlyView.clear()    //⇒ 不编译
//给出错误
}

上面的代码将在浏览器中产生以下输出。当无涯教程尝试清除集合的可变列表时,它给出了一个错误。

main.kt:9:18: error: unresolved reference: clear
   readOnlyView.clear()    //-> 不编译
                 ^

在集合中,Kotlin提供了一些有用的方法,如 first(),last(),filter()等。此外,Kotlin在实现集合时遵循Java之类的相同结构。您可以自由实现您选择的任何集合,如Map和Set。

在以下示例中,无涯教程使用不同的内置方法实现了Map和Set。

fun main(args: Array<String>) {
   val items = listOf(1 2 3 4)
   println("First Element of our list----"+items.first())
   println("Last Element of our list----"+items.last())
   println("Even number of our List----"+items.
      filter { it % 2 = = 0 })   //returns [2, 4]
   
   val readWriteMap = hashMapOf("foo" to 1 "bar" to 2)
   println(readWriteMap["foo"])  //prints "1"
   
   val strings = hashSetOf("a" "b" "c" "c")
   println("My Set Values are"+strings)
}

上面的代码在浏览器中产生以下输出。

First Element of our list----1
Last Element of our list----4
Even number of our List----[2 4]
1
My Set Values are[a b c]

Ranges

Ranges是Kotlin的另一个独特特征,与Haskell一样,它提供了一个运算符,可帮助您遍历范围。它是通过rangeTo()实现的,其运算符形式为(..)。

fun main(args: Array<String>) {
   val i:Int  = 2
   for (j in 1..4) 
   print(j) //prints "1234"
   
   if (i in 1..10) { //equivalent of 1 <=i && i <=10
      println("we found your number --"+i)
   }
}

上面的代码在浏览器中产生以下输出。

1234we found your number --2

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

跟月影学可视化 -〔月影〕

爱上跑步 -〔钱亮〕

高楼的性能工程实战课 -〔高楼〕

大数据经典论文解读 -〔徐文浩〕

李智慧 · 高并发架构实战课 -〔李智慧〕

林外 · 专利写作第一课 -〔林外〕

超级访谈:对话玉伯 -〔玉伯〕

AI大模型企业应用实战 -〔蔡超〕

Midjourney入门实践课 -〔Jovi〕

好记忆不如烂笔头。留下您的足迹吧 :)