Kotlin 官方文档中文版 v1.9反向兼容性 原生 Kotlin/Native 入门——在 IntelliJ IDEA 中 Kotlin/Native 入门——使用 Gradle Kotlin/Native 入门——使用命令行编译器 与 C 语言互操作 与 C 语言互操作性 映射来自 C 语言的原始数据类型——教程 映射来自 C 语言的结构与联合类型——教程 6 1.10.2.4.4 1.10.2.4.5 1.10 Kotlin/JS 开发服务器与持续编译 调试 Kotlin/JS 代码 在 Kotlin/JS 平台中运行测试 Kotlin/JS 无用代码消除 Kotlin/JS IR 编译器 将 Kotlin/JS 项目迁移到 IR 编译器 Kotlin 用于 JS 平台 浏览器与 DOM API 在 Kotlin 中使用 JavaScript 代码 动态类型 使用来自 npm 的依赖 在 JavaScript 关键字与操作符 语法↗ 语言规范↗ 工具 构建工具 Gradle Gradle 概述 Gradle 入门——教程 配置 Gradle 项目 Kotlin Gradle 插件中的编译器选项 Kotlin Gradle 插件中的编译项与缓存 支持 Gradle 插件变体 Maven Ant Dokka 简介 Dokka 入门 运行 Dokka Gradle Maven0 码力 | 2049 页 | 45.06 MB | 1 年前3
Kotlin 1.9.10 官方文档 中文版
反向兼容性 原生 Kotlin/Native 入门——在 IntelliJ IDEA 中 Kotlin/Native 入门——使用 Gradle Kotlin/Native 入门——使用命令行编译器 与 C 语言互操作 1.10.2.4.1 1.10.2.4.2 1.10.2.4.3 1.10.2.4.4 1.10.2.4.5 1.10.2.4.6 1.10.2.5 1.10 Kotlin/JS 开发服务器与持续编译 调试 Kotlin/JS 代码 在 Kotlin/JS 平台中运行测试 Kotlin/JS 无用代码消除 Kotlin/JS IR 编译器 将 Kotlin/JS 项目迁移到 IR 编译器 Kotlin 用于 JS 平台 浏览器与 DOM API 在 Kotlin 中使用 JavaScript 代码 动态类型 使用来自 npm 的依赖 在 JavaScript 关键字与操作符 语法↗ 语言规范↗ 工具 构建工具 Gradle Gradle 概述 Gradle 入门——教程 配置 Gradle 项目 Kotlin Gradle 插件中的编译器选项 Kotlin Gradle 插件中的编译项与缓存 支持 Gradle 插件变体 Maven Ant Dokka 简介 Dokka 入门 运行 Dokka Gradle Maven0 码力 | 3753 页 | 29.69 MB | 1 年前3
Kotlin 入门学习笔记整理
var、val var 可读、可写变量 val 只读变量;不是常量! java 中使⽤ final 修饰的静态变量的字符串,是个编译器常量(编译器编译的时候,已经确定并且不可改变的) 1 private static final String LALALA = "lalala"; kotlin 中的表示⽅式 1 companion object { 2 const Utils.INSTANCE.toast("lalala"); 也想直接使⽤类名点的形式调⽤,可以通过使⽤注解来解决 @JvmStatic 只有在 object 声明的才有⽤,kotlin 编译器会把这个注解对应的函数编译成 java 中真正的静态函数; @file:JvmName 在 kotlin 创建的⽂件中声明的⽅法,想在 java 中类名打点调⽤,可以把 这个注解写在类中 package0 码力 | 8 页 | 5.41 MB | 1 年前3
Hello 算法 1.1.0 Kotlin版。 图 2‑4 递归调用深度 在实际中,编程语言允许的递归深度通常是有限的,过深的递归可能导致栈溢出错误。 2. 尾递归 有趣的是,如果函数在返回前的最后一步才进行递归调用,则该函数可以被编译器或解释器优化,使其在空 间效率上与迭代相当。这种情况被称为尾递归(tail recursion)。 ‧ 普通递归:当函数返回到上一层级的函数后,需要继续执行代码,因此系统需要保存上一层调用的上下 普通递归:求和操作是在“归”的过程中执行的,每层返回后都要再执行一次求和操作。 ‧ 尾递归:求和操作是在“递”的过程中执行的,“归”的过程只需层层返回。 图 2‑5 尾递归过程 Tip 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化,因此即 使函数是尾递归形式,仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思 间效率是否有影响? 存储在栈上和堆上的数组都被存储在连续内存空间内,数据操作效率基本一致。然而,栈和堆具有各自的特 点,从而导致以下不同点。 1. 分配和释放效率:栈是一块较小的内存,分配由编译器自动完成;而堆内存相对更大,可以在代码中动 态分配,更容易碎片化。因此,堆上的分配和释放操作通常比栈上的慢。 2. 大小限制:栈内存相对较小,堆的大小一般受限于可用内存。因此堆更加适合存储大型数组。0 码力 | 381 页 | 18.47 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Kotlin 版。 图 2‑4 递归调用深度 在实际中,编程语言允许的递归深度通常是有限的,过深的递归可能导致栈溢出错误。 2. 尾递归 有趣的是,如果函数在返回前的最后一步才进行递归调用,则该函数可以被编译器或解释器优化,使其在空 间效率上与迭代相当。这种情况被称为尾递归(tail recursion)。 ‧ 普通递归:当函数返回到上一层级的函数后,需要继续执行代码,因此系统需要保存上一层调用的上下 普通递归:求和操作是在“归”的过程中执行的,每层返回后都要再执行一次求和操作。 ‧ 尾递归:求和操作是在“递”的过程中执行的,“归”的过程只需层层返回。 图 2‑5 尾递归过程 Tip 请注意,许多编译器或解释器并不支持尾递归优化。例如,Python 默认不支持尾递归优化,因此即 使函数是尾递归形式,仍然可能会遇到栈溢出问题。 3. 递归树 当处理与“分治”相关的算法问题时,递归往往比迭代的思 间效率是否有影响? 存储在栈上和堆上的数组都被存储在连续内存空间内,数据操作效率基本一致。然而,栈和堆具有各自的特 点,从而导致以下不同点。 1. 分配和释放效率:栈是一块较小的内存,分配由编译器自动完成;而堆内存相对更大,可以在代码中动 态分配,更容易碎片化。因此,堆上的分配和释放操作通常比栈上的慢。 2. 大小限制:栈内存相对较小,堆的大小一般受限于可用内存。因此堆更加适合存储大型数组。0 码力 | 382 页 | 18.48 MB | 10 月前3
共 5 条
- 1













