Android Kotlin基础

Kotlin 是一种现代的静态类型编程语言,它被设计为完全互操作的 Java 语言替代品,同时解决了 Java 语言的一些痛点。以下是 Kotlin 基础的一些关键点解释和示例:
1.基本语法

变量声明:
val immutableString: String = "Hello" // 不可变变量声明
var mutableInt: Int = 42 // 可变变量声明
基本数据类型
val intValue: Int = 123
val longValue: Long = 123L
val doubleValue: Double = 12.34
val floatValue: Float = 12.34F
val booleanValue: Boolean = true
字符串模板
val firstName = "John"
val lastName = "Doe"
val age = 30
val greeting = "Hello,$firstName$lastName! You are$ageyears old."
val greeting = "Hello, ${firstName.capitalize()} ${lastName.toUpperCase()}! Next year, you'll be ${age + 1}."
控制流
// if 表达式
val max = if (a > b) a else b
// when 表达式
when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> print("x is neither 1 nor 2")
}
// for 循环
for (i in 1..10) {
    println(i)
}
// while 循环
while (x > 0) {
    x--
}
函数
// 基本函数定义
fun sum(a: Int, b: Int): Int {
    return a + b
}
// 默认参数
fun greet(name: String, greeting: String = "Hello"): String {
    return "$greeting, $name!"
}
// 命名参数
val result = greet(name = "Kotlin", greeting = "Welcome")
// 扩展函数
fun String.addExclamation() = this + "!"
val excited = "Hello".addExclamation() // "Hello!"
类和对象
// 类定义和构造函数
class Person(val name: String, var age: Int)
// 继承
open class Base(p: Int)
class Derived(p: Int) : Base(p)
// 接口
interface MyInterface {
    fun bar()
    fun foo() {
      // 可选的方法体
    }
}
// 数据类
data class User(val name: String, val age: Int)
// 伴生对象
class MyClass {
    companion object Factory {
        fun create(): MyClass = MyClass()
    }
}
集合处理
val list = listOf("a", "b", "c")
// filter 筛选
val positives = list.filter { it.startsWith("a") }
// map 全处理
val doubled = list.map { it.toUpperCase() }
// reduce 整合
val sum = listOf(1, 2, 3).reduce { acc, n -> acc + n }
空安全
var a: String = "abc"
a = null // 编译错误
var b: String? = "abc" // 可空类型
b = null // ok
val l = b?.length // 安全调用操作符

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 自从实习结束后直到现在将近一年多的时间再也没有用过kotlin, 在今年五月份I/O大会上,Google再次明确了...
    Scus阅读 1,406评论 0 0
  • Java其实不是编译型语言,java编译之后不是计算机可识别的二进制文件,而是一种特殊的class文件,这种文件只...
    Dane_404阅读 494评论 0 0
  • 工作中用到了,翻译一下,原文地址:http://kotlinlang.org/docs/tutorials/and...
    looooker阅读 5,193评论 0 0
  • 在 Kotlin 中的变量、常量以及注释多多少少和 Java 语言是有着不同之处的。下面详细的介绍 Kotlin ...
    驰同学阅读 946评论 0 2
  • 1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch...
    阳光的大男孩儿阅读 5,042评论 0 13