liuyulin
发布于 2024-02-01 / 26 阅读
0
0

Kotlin

Kotlin

HelloWorld

fun main(args : Array<String>) {
    println("Hello, World!")
}

fun main(args : Array<String>){...}是kotlin的main函数,Kotlin的编译器开始从main函数执行代码。该函数将字符串数组作为参数,并返回Unit。

注意:

  • 与Java不同,并非必须在每个Kotlin中创建一个类(class)。这是因为Kotlin编译器为我们创建了该类。如果将Kotlin文件命名为HelloWorld.kt则编译器将创建HelloWorldKt类

  • println()函数在内部调用System.out.println(),打开Console.kt(声明文件),可以看到println()函数在内部调用System.out.println()。

变量和基本类型

在Kotlin中声明变量使用var或val关键字。

var language = "French"
val score = 95

类似于js,不必指定变量的类型,Kotlin会隐式为您指定类型。编译器通过初始化表达式知道这一点,在编程中称为类型推断。

如果要执行以下操作,则可以显示指定类型:

var language: String = "French"
val score: Int = 95

可以在一个语句中声明变量并指定其类型,然后稍后在程序中在另一条语句中初始化变量。

var language: String      //String 类型的变量声明
... .. ...
language = "French"       //变量初始化
​
val score: Int          //Int 类型的变量声明
... .. ...
score = 95             //变量初始化

以下是一些错误的示例。

var language           // Error 
language = "French"

此处,language 未明确指定变量的类型,也未在声明期间初始化变量。

var language: String
language = 14         // Error

此处,我们尝试将14(整数值)分配给不同类型(String)的变量,也会抛出错误。

var和val

  • val,不可变引用,赋值后,无法更改使用val关键字声明的变量,类似于Java中的final变量。

  • var,可变医用,赋值后可以修改。

基本类型

内置类型可以分为:

  • Numbers:数字

  • Characters:字符

  • Booleans:布尔

  • Arrays:数组

Numbers

有六种内置类型表示数字

  • Byte

  • Short

  • Int

  • Long

  • Float

  • Double

Byte

范围是从-128到127(8位有符号二进制补码整数),如果可以确定变量的值在[-128,127]之内,则可以用它替代Int或其他数字类型来节省内存

var b : Byte = 100
println(b)
Short

范围是-32768到32767(16位有符号二进制补码整数),如果可以确定该变量的值在[-32768,32767]之内,可以使用它代替其他整数数据类型来节省内存

val s : Short =-32768
println(s)
Int

范围是-2^31到2^31-1(32位带符号二进制补码整数),如果您为变量分配-2^31到2^31-1之间的整数而未明确指定其类型,则该变量为Int类型

val i= 100000
println(i)
Long

范围是-2^63到2^63-1(64位符号的二进制补码整数),如果变量分配大于2^31-1或小于-2^31的整数(未指定其类型),则该变量将为Long类型,同样可以使用大写L指定变量为Long

val l = 100L
println(l)
Double

Double类型是双精度64位浮点数

    val d = 100.7
    println(d)
Float

Float数据类型是单精度32位浮点数,若要定义Float,需要在数字后加F,不加F会定义为Double

val f = 100.7F
println(f)

如果不确定在程序中将为变量分配什么数字值,可以将其指定为Number类型,这样既可以将整数值又可以将浮点值分配给变量

var n: Number
n = 123
println(n)
n= 1.23
println(n)


评论