基本语法

输出“hello world”

fun main() {
    ptintln("Hello World!")
}

自定义变量

不可变变量(使用val)

直接使用

fun main() {
    val count: Int = 2
    println(count)
}

嵌套在语句中

fun main() {
    val count: Int = 2
    println("You have $count unread messages.")
}

可变变量(使用var)

fun main() {
    var cartTotal = 0
    cartTotal = 20
    println("Total: $cartTotal")
}

Double变量(Double 可省略)

fun main() {
    val trip1: Double = 3.20
    val trip2: Double = 4.10
    val trip3: Double = 1.72
    val totalTripLength: Double = trip1 + trip2 + trip3
    println("$totalTripLength miles left to destination")
}

String变量

fun main() {
    val nextMeeting = "Next meeting is:"
    val date = "January 1"
    val reminder = nextMeeting + date
    println(reminder)
}
fun main() {
    val nextMeeting = "Next meeting is: "
    val date = "January 1"
    val reminder = nextMeeting + date + " at work"
    println(reminder)
}
fun main() {
    println("Say \"hello\"")
}

Boolean变量

fun main() {
    val notificationsEnabled: Boolean = true
    println(notificationsEnabled)
}
fun main() {
    val notificationsEnabled: Boolean = false
    println("Are notifications enabled? " + notificationsEnabled)
}

注释

/**
 * This program displays the number of messages
 * in the user's inbox.
 */
fun main() {
    // Create a variable for the number of unread messages.
    var count = 10
    println("You have $count unread messages.")

    // Decrease the number of messages by 1.
    count--
    println("You have $count unread messages.")
}

kotlin运算

两个变量运算

fun main() {
    val unreadCount = 5
    val readCount = 100
    println("You have ${unreadCount + readCount} total messages in your inbox.")
}

自加减

fun main() {
    var count = 10
    println("You have $count unread messages.")

    count = count + 1
    println("You have $count unread messages.")

    count++
    println("You have $count unread messages.")

    count--
    println("You have $count unread messages.")

}

自定义函数

fun main() {
    birthdayGreeting()
}

fun birthdayGreeting() {
    println("Happy Birthday, Rover!")
    println("You are now 5 years old!")
}

返回值(实参)

Unit

默认情况下,如果您不指定返回值类型,默认返回值类型是 Unit。Unit 表示函数并不会返回值。
Unit 相当于其他语言中的 void 返回值类型(在 Java 和 C 中为 void;在 Swift 中为Void/空元组 ();
在 Python 中为 None 等)。任何不返回值的函数都会隐式返回 Unit。您可以通过修改代码以返回 Unit 来观察此情况。
fun birthdayGreeting(): Unit {
    println("Happy Birthday, Rover!")
    println("You are now 5 years old!")
}

String

fun main() {
    val greeting = birthdayGreeting()
    println(greeting)
}
/**
* 或者也可以这样写主函数
* fun main() {
*     println(birthdayGreeting())
* }
*/
fun birthdayGreeting(): String {
    val nameGreeting = "Happy Birthday, Rover!"
    val ageGreeting = "You are now 5 years old!"
    return "$nameGreeting\n$ageGreeting"
}

形参

fun main() {
    println(birthdayGreeting("Rover"))
}

fun birthdayGreeting(name: String): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now 5 years old!"
    return "$nameGreeting\n$ageGreeting"
}

多个形参

fun main() {
    println(birthdayGreeting("Rover", 5))
    println(birthdayGreeting("Rex", 2))
}

fun birthdayGreeting(name: String, age: Int): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now $age years old!"
    return "$nameGreeting\n$ageGreeting"
}

具名实参

fun main() {
    println(birthdayGreeting(name = "Rex", age = 2))
}

fun birthdayGreeting(name: String, age: Int): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now $age years old!"
    return "$nameGreeting\n$ageGreeting"
}

默认实参

fun main() {
    println(birthdayGreeting(age = 5))
    println(birthdayGreeting("Rex", 2))

    println(birthdayGreeting(age = 5))
    println(birthdayGreeting(age = 2))

}

fun birthdayGreeting(name: String = "Rover", age: Int): String {
    return "Happy Birthday, $name! You are now $age years old!"
}
Kotlin 数据类型可包含的数据类型字面量值示例
String文本"Add contact"
Int整数32 -123456
Double小数-31723.99999
Float小数(不如 Double 精确),数字末尾带有 f 或 F。-1.2940278F
Booleantrue 或 false。当只有两个可能的值时,可使用此数据类型。请注意,true 和 false 是 Kotlin 中的关键字。true false

类型推断

下面的提示可帮助您减少在声明变量时编写的代码。
利用类型推断,当 Kotlin 编译器可以推断(或确定)变量应属的数据类型时,您不必在代码中写入确切类型。
这意味着,如果您为变量提供了初始值,就可以在变量声明中省略数据类型。Kotlin 编译器会查看初始值的数据类型,
并假定变量会存储该类型的数据。

以下是使用类型推断来声明变量的语法:
val count: Int = 2
不过,您还可以按如下方式编写这行代码。请注意,冒号 (:) 和 Int 数据类型已被省略。
使用更新后的语法,您不但可以减少需要输入的单词,而且还能取得与创建名为 count 且值为 2 的 Int 变量相同的结果。
val count = 2
Kotlin 编译器知道您想将 2(整数)存储到变量 count 中,因此可以推断出 count 变量的类型为 Int。
是不是很省事呀?下面这个示例就展示了如何编写更简洁的 Kotlin 代码!
注意:如果您在声明变量时未提供初始值,就必须指定类型。
下面这行代码未提供初始值,因此您必须指定数据类型:
val count: Int
下面这行代码已提供赋值,因此您可以省略数据类型:
val count = 2