基础语法中主要说明以下几点:
1.1 包的声明应处于源文件顶部。 目录与包的结构无需匹配:源代码可以在文件系统的任意位置。
1.2 变量 val:只读局部变量,只能为其赋值一次;var:可重新赋值的变量。
1.3 字符串模板 通过$字符拼接变量,不需要+拼接变量了。
1.4 函数 fun开头,返回参数类型在后面,函数体可以是表达式,其返回类型可以推断出来。Unit为返回无意义的值的函数,也可省略不写。
1.5 条件表达式 即if else,可简(if(a>b) a else b,同Java的三目表达式a > b? a:b
1.6 when表达式 when 表达式,对比Java的switch功能相似,但key对应的类型不只Int
1.7 for循环 使用in
1.8 range区间 可用于检测某个数字是否在指定区间外,或者结合for循环使用区间迭代,或数列迭代
1.9 while循环 基本同Java
以上几点直接看下面代码:
// ★ 1.包的声明应处于源文件顶部。
// 目录与包的结构无需匹配:源代码可以在文件系统的任意位置。
package com.yvan.kotlin// 导包
import kotlin.text.*// 可以在顶层声明变量,val不可变、var可变。
val y = 10
var x = 200/**
* Kotlin 应用程序的入口点是 main 函数。
*/
/*
fun main() {
// 无换行打印
print("Hello world!")
}
*//**
* 可变数量的String参数,
* Unit为返回值可省略不写
*/
fun main(args: Array): Unit {// ★ 2.变量:val:只读局部变量,只能为其赋值一次;var:可重新赋值的变量。
// 立即赋值
val a: Int = 1
// 自动推断出 `Int` 类型
val b = 2
// 如果没有初始值时,类型不能省略
val c: Int
// 明确赋值
c = 3
// var 可重新赋值的变量
var d = 5
d += 1
println("a = $a, b = $b, c = $c,d = $d, x = $x, y = $y")// ★ 3.字符串模板
var e = 1
// 模板中的简单名称:
val s1 = "e is $e"
e = 2
// 模板中的任意表达式:
val s2 = "${s1.replace("is", "was")}, but now is $e"
println("s2 = $s2")// ★ 4.函数
// 参数传入函数,返回Int输出,
println(sum(3, 5))
// 直接在打印通过$调用函数 使用返回值输出
println("sum of 19 and 23 is ${sum2(19, 23)}")// ★5.条件表达式
println(maxOf2(1, 2))// ★6.for 循环
val items = listOf("apple", "banana", "kiwifruit")
for (item in items) {
println(item)
}
// 或者
for (index in items.indices) {
println("item at $index is ${items[index]}")
}// ★7.while 循环
var index = 0
while (index < items.size) {
println("item at $index is ${items[index]}")
index++
}// ★8.when 表达式
println(describe("Hello"))// ★9.使用区间(range)
val f = 10
val g = 9
if (f in 1..g + 1) {
println("fits in range")
}
// 检测某个数字是否在指定区间外。
val rangeList = listOf("a", "b", "c")
if (-1 !in 0..rangeList.lastIndex) {
println("-1 is out of range")
}
if (rangeList.size !in rangeList.indices) {
println("list size is out of valid list indices range, too")
}
// 区间迭代。
for (i in 1..5) {
print(i)
}
// 或数列迭代。
for (j in 1..10 step 2) {
print(j)
}
println()
for (k in 9 downTo 0 step 3) {
print(k)
}}/**
* 函数
*/
fun sum(a: Int, b: Int): Int {
return a + b
}/**
* sum函数的简写,直接将计算的值作为函数返回值返回
*/
fun sum2(a: Int, b: Int) = a + b/**
* 条件表达式
*/
fun maxOf(a: Int, b: Int): Int {
if (a > b) {
return a
} else {
return b
}
}/**
* maxOf 函数简写,同Java的三目表达式(a > b? a:b)
*/
fun maxOf2(a: Int, b: Int) = if (a > b) a else b/**
* when 表达式,对比Java的switch功能相似,但key对应的类型不只Int
*/
fun describe(obj: Any): String =
when (obj) {
1 -> "One"
"Hello" -> "Greeting"
is Long -> "Long"
!is String -> "Not a string"
else -> "Unknown"
}
【Kotlin|【Kotlin基础系列】第2章 基本语法(1)】
推荐阅读
- Android开发笔记|【Android笔记28】Android中的数据存储技术之Shared Preferences
- Android安全|【原创工具】ADBGUI - GUI版ADB操作工具
- android|No version of NDK matched the requested version xxx 问题解决
- 11_性能测试|性能分析(动态代理失败导致缓存策略失效)
- typescript|6.typescript类
- R语言|R 语言读写文件
- python|python经典案例(2)
- java|[多线程] | 实例演示三种创建多线程的方式,初识线程同步以及解决线程安全问题(超卖)
- android|android studio打包h5,Android Studio打包生成APK教程