Are you over 18 and want to see adult content?
More Annotations
A complete backup of https://nemoequipment.com
Are you over 18 and want to see adult content?
A complete backup of https://burkatron.com
Are you over 18 and want to see adult content?
A complete backup of https://rosenplaza.com
Are you over 18 and want to see adult content?
A complete backup of https://lyricsmint.com
Are you over 18 and want to see adult content?
A complete backup of https://cska-hockey.ru
Are you over 18 and want to see adult content?
A complete backup of https://xn----ctbbj1acidfjbu3a.xn--p1ai
Are you over 18 and want to see adult content?
A complete backup of https://pokerbola303.com
Are you over 18 and want to see adult content?
A complete backup of https://vpssim.com
Are you over 18 and want to see adult content?
A complete backup of https://liveathos.com
Are you over 18 and want to see adult content?
A complete backup of https://dapoxetine365.com
Are you over 18 and want to see adult content?
A complete backup of https://gmperformancemotor.com
Are you over 18 and want to see adult content?
Favourite Annotations
A complete backup of usebooks.blogspot.com
Are you over 18 and want to see adult content?
A complete backup of cedarandsail.com
Are you over 18 and want to see adult content?
A complete backup of meatprocessingproducts.com
Are you over 18 and want to see adult content?
A complete backup of comiccon.kiev.ua
Are you over 18 and want to see adult content?
A complete backup of blogcenturions.wordpress.com
Are you over 18 and want to see adult content?
Text
the community →.
KOTLIN/NATIVE
将编译后的 Kotlin 代码包含进 用 C、 C++、 Swift、 Objective-C 以及其他语言编写的现有项目中会很容易。. 直接在 Kotlin/Native 中使用现有原生代码、 静态或动态 C 语言库 、 Swift/Objective-C 框架 、 图形引擎以及任何其他原生内容也很容易。. Kotlin/Native 库 有助于在多个 迭代器 - KOTLIN 语言中文站TRANSLATE THIS PAGE 迭代器. 对于遍历集合元素, Kotlin 标准库支持迭代器
的常用机制——对象可按顺序提供对元素的访问权限,而不会暴露集合的底层结构。. 当需要逐个处理集合的所有元素(例如打印值或对其进行类似更新)时,迭代器非常有用。. Iterable 接口的继承者(包括协程概述
完整 Kotlin 参考(PDF) 完整 Kotlin 参考(字大PDF) 完整 Kotlin 参考(ePUB) 完整 Kotlin 参考(Mobi) 数据类 - KOTLIN 语言中文站TRANSLATE THIS PAGE 数据类. 我们经常创建一些只保存数据的类。. 在这些类中,一些标准函数往往是从 数据机械推导而来的。. 在 Kotlin 中,这叫做 数据类 并标记为 data :. 编译器自动从主构造函数中声明的所有属性导出以下成员:. copy () 函数(见下文)。. 为了确保生成的代码的使用 KAPT
改进翻译 Kotlin 注解处理. 译注:kapt 即 Kotlin annotation processing tool(Kotlin 注解处理工具)缩写。 在 Kotlin 中通过 kapt 编译器插件支持注解处理器(参见JSR 269)。. 简而言之,你可以在 Kotlin 项目中使用像 Dagger 或者 Data Binding 这样的库。. 关于如何将 kapt 插件应用于 Gradle/Maven 构建中,请阅读下 枚举类 - KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin 中的枚举类也有合成方法允许列出 定义的枚举常量以及通过名称获取枚举常量。. 这些方法的 签名如下(假设枚举类的名称是 EnumClass):.
如果指定的名称与类中定义的任何枚举常量均不匹配, valueOf () 方法将抛出 IllegalArgumentException 异常。. 自Kotlin 1.1 起
加减操作符
有关 map 的 plus 和 minus 操作符的详细信息,请参见 Map 相关操作。 也为集合定义了广义赋值操作符 plusAssign (+=) 和 minusAssign (-=)。然而,对于只读集合,它们实际上使用 plus 或者 minus 操作符并尝试将结果赋值给同一变量。 因此,它们仅在由 var 声明的只读集合中可用。 对于可变集合,如果它是一个 密封类 - KOTLIN 语言中文站TRANSLATE THIS PAGE密封类.
密封类用来表示受限的类继承结构:当一个值为有限几种的 类型、而不能有任何其他类型时。. 在某种意义上,他们是枚举类的扩展:枚举类型的值集合 也是受限的,但每个枚举常量只存在一个实例,而密封类 的一个子类可以有可包含状态的多个实例 关键字与操作符修饰符关键字.
以下符号作为声明中修饰符列表中的关键字,并可用作其他上下文中 的标识符:. actual 表示 多平台项目 中的一个平台相关实现. abstract 将一个类或成员标记为 抽象. annotation 声明一个 注解类. companion 声明一个 伴生对象. const 将属性标记为 编译期 KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away – consult extensive community resources or ask the Kotlin team directly. Jointhe community →.
KOTLIN/NATIVE
将编译后的 Kotlin 代码包含进 用 C、 C++、 Swift、 Objective-C 以及其他语言编写的现有项目中会很容易。. 直接在 Kotlin/Native 中使用现有原生代码、 静态或动态 C 语言库 、 Swift/Objective-C 框架 、 图形引擎以及任何其他原生内容也很容易。. Kotlin/Native 库 有助于在多个 迭代器 - KOTLIN 语言中文站TRANSLATE THIS PAGE 迭代器. 对于遍历集合元素, Kotlin 标准库支持迭代器
的常用机制——对象可按顺序提供对元素的访问权限,而不会暴露集合的底层结构。. 当需要逐个处理集合的所有元素(例如打印值或对其进行类似更新)时,迭代器非常有用。. Iterable 接口的继承者(包括协程概述
完整 Kotlin 参考(PDF) 完整 Kotlin 参考(字大PDF) 完整 Kotlin 参考(ePUB) 完整 Kotlin 参考(Mobi) 数据类 - KOTLIN 语言中文站TRANSLATE THIS PAGE 数据类. 我们经常创建一些只保存数据的类。. 在这些类中,一些标准函数往往是从 数据机械推导而来的。. 在 Kotlin 中,这叫做 数据类 并标记为 data :. 编译器自动从主构造函数中声明的所有属性导出以下成员:. copy () 函数(见下文)。. 为了确保生成的代码的使用 KAPT
改进翻译 Kotlin 注解处理. 译注:kapt 即 Kotlin annotation processing tool(Kotlin 注解处理工具)缩写。 在 Kotlin 中通过 kapt 编译器插件支持注解处理器(参见JSR 269)。. 简而言之,你可以在 Kotlin 项目中使用像 Dagger 或者 Data Binding 这样的库。. 关于如何将 kapt 插件应用于 Gradle/Maven 构建中,请阅读下 枚举类 - KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin 中的枚举类也有合成方法允许列出 定义的枚举常量以及通过名称获取枚举常量。. 这些方法的 签名如下(假设枚举类的名称是 EnumClass):.
如果指定的名称与类中定义的任何枚举常量均不匹配, valueOf () 方法将抛出 IllegalArgumentException 异常。. 自Kotlin 1.1 起
加减操作符
有关 map 的 plus 和 minus 操作符的详细信息,请参见 Map 相关操作。 也为集合定义了广义赋值操作符 plusAssign (+=) 和 minusAssign (-=)。然而,对于只读集合,它们实际上使用 plus 或者 minus 操作符并尝试将结果赋值给同一变量。 因此,它们仅在由 var 声明的只读集合中可用。 对于可变集合,如果它是一个 密封类 - KOTLIN 语言中文站TRANSLATE THIS PAGE密封类.
密封类用来表示受限的类继承结构:当一个值为有限几种的 类型、而不能有任何其他类型时。. 在某种意义上,他们是枚举类的扩展:枚举类型的值集合 也是受限的,但每个枚举常量只存在一个实例,而密封类 的一个子类可以有可包含状态的多个实例 关键字与操作符修饰符关键字.
以下符号作为声明中修饰符列表中的关键字,并可用作其他上下文中 的标识符:. actual 表示 多平台项目 中的一个平台相关实现. abstract 将一个类或成员标记为 抽象. annotation 声明一个 注解类. companion 声明一个 伴生对象. const 将属性标记为 编译期 REFERENCE - KOTLIN 语言中文站TRANSLATE THIS PAGE 在线教程. 在线课程对 Kotlin 有很好地覆盖,可在这里查看推荐的课程:. 新版Kotlin从入门到精通 —— 基于 Kotlin 1.3.50. 基于GitHub App业务深度讲解 Kotlin高级特性与框架设计. 码上开学:给 Android 工程师的 Kotlin 上手指南. Introduction to Kotlin Programming. Advanced Kotlin 教程 - KOTLIN 语言中文站TRANSLATE THIS PAGE 教程. 一系列完整的分步教程,让您了解如何用 Kotlin 完成不同的任务,从入门到编写 Android 应用程序等等。. 如果你有一个你想推荐到这里的教程,请告诉我们。. 我们乐于托管到这里并给予致谢!. 如果你喜欢边练边学,请尝试 在线 Kotlin 心印 来熟悉Kotlin
KOTLIN/NATIVE
将编译后的 Kotlin 代码包含进 用 C、 C++、 Swift、 Objective-C 以及其他语言编写的现有项目中会很容易。. 直接在 Kotlin/Native 中使用现有原生代码、 静态或动态 C 语言库 、 Swift/Objective-C 框架 、 图形引擎以及任何其他原生内容也很容易。. Kotlin/Native 库 有助于在多个 关键字与操作符修饰符关键字.
以下符号作为声明中修饰符列表中的关键字,并可用作其他上下文中 的标识符:. actual 表示 多平台项目 中的一个平台相关实现. abstract 将一个类或成员标记为 抽象. annotation 声明一个 注解类. companion 声明一个 伴生对象. const 将属性标记为 编译期 枚举类 - KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin 中的枚举类也有合成方法允许列出 定义的枚举常量以及通过名称获取枚举常量。. 这些方法的 签名如下(假设枚举类的名称是 EnumClass):.
如果指定的名称与类中定义的任何枚举常量均不匹配, valueOf () 方法将抛出 IllegalArgumentException 异常。. 自Kotlin 1.1 起
分组 - KOTLIN 语言中文站TRANSLATE THIS PAGE 改进翻译 分组. Kotlin 标准库提供用于对集合元素进行分组的扩展函数。 基本函数 groupBy() 使用一个 lambda 函数并返回一个 Map。 在此 Map 中,每个键都是 lambda 结果,而对应的值是返回此结果的元 List。例如,可以使用此函数将 String 列表按首字母分组。. 还可以使用第二个 lambda 参数(值转换函数 接口 - KOTLIN 语言中文站TRANSLATE THIS PAGE 接口. Kotlin 的接口可以既包含抽象方法的声明也包含 实现。. 与抽象类不同的是,接口无法保存状态。.它可以有
属性但必须声明为抽象或提供访问器实现。. 使用关键字 interface 来定义接口. interface MyInterface { fun bar () fun foo () { // 可选的方法体 } } 密封类 - KOTLIN 语言中文站TRANSLATE THIS PAGE密封类.
密封类用来表示受限的类继承结构:当一个值为有限几种的 类型、而不能有任何其他类型时。. 在某种意义上,他们是枚举类的扩展:枚举类型的值集合 也是受限的,但每个枚举常量只存在一个实例,而密封类 的一个子类可以有可包含状态的多个实例集合转换操作
合拢. 合拢
转换是根据两个集合中具有相同位置的元素构建配对。 在 Kotlin 标准库中,这是通过 zip() 扩展函数完成的。 在一个集合(或数组)上以另一个集合(或数组)作为参数调用时,zip()返回 Pair
对象的列表(List)。接收者集合的元素是这些配对中的第一个元素。 返回与跳转:BREAK 与 CONTINUE 返回和跳转. Kotlin 有三种结构化跳转表达式:. return 。. 默认从最直接包围它的函数或者 匿名函数 返回。. break 。. 终止最直接包围它的循环。. continue 。. 继续下一次最直接包围它的循环。. 所有这些表达式都可以用作更大表达式的一部分:. KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away – consult extensive community resources or ask the Kotlin team directly. Jointhe community →.
教程 - KOTLIN 语言中文站TRANSLATE THIS PAGE 教程. 一系列完整的分步教程,让您了解如何用 Kotlin 完成不同的任务,从入门到编写 Android 应用程序等等。. 如果你有一个你想推荐到这里的教程,请告诉我们。. 我们乐于托管到这里并给予致谢!. 如果你喜欢边练边学,请尝试 在线 Kotlin 心印 来熟悉Kotlin
KOTLIN/NATIVE
将编译后的 Kotlin 代码包含进 用 C、 C++、 Swift、 Objective-C 以及其他语言编写的现有项目中会很容易。. 直接在 Kotlin/Native 中使用现有原生代码、 静态或动态 C 语言库 、 Swift/Objective-C 框架 、 图形引擎以及任何其他原生内容也很容易。. Kotlin/Native 库 有助于在多个 数据类 - KOTLIN 语言中文站TRANSLATE THIS PAGE 数据类. 我们经常创建一些只保存数据的类。. 在这些类中,一些标准函数往往是从 数据机械推导而来的。. 在 Kotlin 中,这叫做 数据类 并标记为 data :. 编译器自动从主构造函数中声明的所有属性导出以下成员:. copy () 函数(见下文)。. 为了确保生成的代码的协程概述
完整 Kotlin 参考(PDF) 完整 Kotlin 参考(字大PDF) 完整 Kotlin 参考(ePUB) 完整 Kotlin 参考(Mobi) 分组 - KOTLIN 语言中文站TRANSLATE THIS PAGE 改进翻译 分组. Kotlin 标准库提供用于对集合元素进行分组的扩展函数。 基本函数 groupBy() 使用一个 lambda 函数并返回一个 Map。 在此 Map 中,每个键都是 lambda 结果,而对应的值是返回此结果的元 List。例如,可以使用此函数将 String 列表按首字母分组。. 还可以使用第二个 lambda 参数(值转换函数 枚举类 - KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin 中的枚举类也有合成方法允许列出 定义的枚举常量以及通过名称获取枚举常量。. 这些方法的 签名如下(假设枚举类的名称是 EnumClass):.
如果指定的名称与类中定义的任何枚举常量均不匹配, valueOf () 方法将抛出 IllegalArgumentException 异常。. 自Kotlin 1.1 起
接口 - KOTLIN 语言中文站TRANSLATE THIS PAGE 接口. Kotlin 的接口可以既包含抽象方法的声明也包含 实现。. 与抽象类不同的是,接口无法保存状态。.它可以有
属性但必须声明为抽象或提供访问器实现。. 使用关键字 interface 来定义接口. interface MyInterface { fun bar () fun foo () { // 可选的方法体 } }解构声明
解构声明. 有时把一个对象 解构 成很多变量会很方便,例如: 这种语法称为 解构声明 。. 一个解构声明同时创建多个变量。. 我们已经声明了两个新变量: name 和 age ,并且可以独立使用它们:. 其中的 component1 () 和 component2 () 函数是在 Kotlin 中广泛使用的 约定加减操作符
有关 map 的 plus 和 minus 操作符的详细信息,请参见 Map 相关操作。 也为集合定义了广义赋值操作符 plusAssign (+=) 和 minusAssign (-=)。然而,对于只读集合,它们实际上使用 plus 或者 minus 操作符并尝试将结果赋值给同一变量。 因此,它们仅在由 var 声明的只读集合中可用。 对于可变集合,如果它是一个 KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away – consult extensive community resources or ask the Kotlin team directly. Jointhe community →.
教程 - KOTLIN 语言中文站TRANSLATE THIS PAGE 教程. 一系列完整的分步教程,让您了解如何用 Kotlin 完成不同的任务,从入门到编写 Android 应用程序等等。. 如果你有一个你想推荐到这里的教程,请告诉我们。. 我们乐于托管到这里并给予致谢!. 如果你喜欢边练边学,请尝试 在线 Kotlin 心印 来熟悉Kotlin
KOTLIN/NATIVE
将编译后的 Kotlin 代码包含进 用 C、 C++、 Swift、 Objective-C 以及其他语言编写的现有项目中会很容易。. 直接在 Kotlin/Native 中使用现有原生代码、 静态或动态 C 语言库 、 Swift/Objective-C 框架 、 图形引擎以及任何其他原生内容也很容易。. Kotlin/Native 库 有助于在多个 数据类 - KOTLIN 语言中文站TRANSLATE THIS PAGE 数据类. 我们经常创建一些只保存数据的类。. 在这些类中,一些标准函数往往是从 数据机械推导而来的。. 在 Kotlin 中,这叫做 数据类 并标记为 data :. 编译器自动从主构造函数中声明的所有属性导出以下成员:. copy () 函数(见下文)。. 为了确保生成的代码的协程概述
完整 Kotlin 参考(PDF) 完整 Kotlin 参考(字大PDF) 完整 Kotlin 参考(ePUB) 完整 Kotlin 参考(Mobi) 分组 - KOTLIN 语言中文站TRANSLATE THIS PAGE 改进翻译 分组. Kotlin 标准库提供用于对集合元素进行分组的扩展函数。 基本函数 groupBy() 使用一个 lambda 函数并返回一个 Map。 在此 Map 中,每个键都是 lambda 结果,而对应的值是返回此结果的元 List。例如,可以使用此函数将 String 列表按首字母分组。. 还可以使用第二个 lambda 参数(值转换函数 枚举类 - KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin 中的枚举类也有合成方法允许列出 定义的枚举常量以及通过名称获取枚举常量。. 这些方法的 签名如下(假设枚举类的名称是 EnumClass):.
如果指定的名称与类中定义的任何枚举常量均不匹配, valueOf () 方法将抛出 IllegalArgumentException 异常。. 自Kotlin 1.1 起
接口 - KOTLIN 语言中文站TRANSLATE THIS PAGE 接口. Kotlin 的接口可以既包含抽象方法的声明也包含 实现。. 与抽象类不同的是,接口无法保存状态。.它可以有
属性但必须声明为抽象或提供访问器实现。. 使用关键字 interface 来定义接口. interface MyInterface { fun bar () fun foo () { // 可选的方法体 } }解构声明
解构声明. 有时把一个对象 解构 成很多变量会很方便,例如: 这种语法称为 解构声明 。. 一个解构声明同时创建多个变量。. 我们已经声明了两个新变量: name 和 age ,并且可以独立使用它们:. 其中的 component1 () 和 component2 () 函数是在 Kotlin 中广泛使用的 约定加减操作符
有关 map 的 plus 和 minus 操作符的详细信息,请参见 Map 相关操作。 也为集合定义了广义赋值操作符 plusAssign (+=) 和 minusAssign (-=)。然而,对于只读集合,它们实际上使用 plus 或者 minus 操作符并尝试将结果赋值给同一变量。 因此,它们仅在由 var 声明的只读集合中可用。 对于可变集合,如果它是一个 KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away – consult extensive community resources or ask the Kotlin team directly. Jointhe community →.
KOTLIN/NATIVE
将编译后的 Kotlin 代码包含进 用 C、 C++、 Swift、 Objective-C 以及其他语言编写的现有项目中会很容易。. 直接在 Kotlin/Native 中使用现有原生代码、 静态或动态 C 语言库 、 Swift/Objective-C 框架 、 图形引擎以及任何其他原生内容也很容易。. Kotlin/Native 库 有助于在多个 迭代器 - KOTLIN 语言中文站TRANSLATE THIS PAGE 迭代器. 对于遍历集合元素, Kotlin 标准库支持迭代器
的常用机制——对象可按顺序提供对元素的访问权限,而不会暴露集合的底层结构。. 当需要逐个处理集合的所有元素(例如打印值或对其进行类似更新)时,迭代器非常有用。. Iterable 接口的继承者(包括 分组 - KOTLIN 语言中文站TRANSLATE THIS PAGE 改进翻译 分组. Kotlin 标准库提供用于对集合元素进行分组的扩展函数。 基本函数 groupBy() 使用一个 lambda 函数并返回一个 Map。 在此 Map 中,每个键都是 lambda 结果,而对应的值是返回此结果的元 List。例如,可以使用此函数将 String 列表按首字母分组。. 还可以使用第二个 lambda 参数(值转换函数 委托 - KOTLIN 语言中文站TRANSLATE THIS PAGE委托模式
已经证明是实现继承的一个很好的替代方式, 而 Kotlin 可以零样板代码地原生支持它。. Derived 类可以通过将其所有公有成员都委托给指定对象来实现一个接口 Base :. interface Base { fun print () } class BaseImpl (val x: Int) : Base { override fun print () { print (x) } } class 接口 - KOTLIN 语言中文站TRANSLATE THIS PAGE 接口. Kotlin 的接口可以既包含抽象方法的声明也包含 实现。. 与抽象类不同的是,接口无法保存状态。.它可以有
属性但必须声明为抽象或提供访问器实现。. 使用关键字 interface 来定义接口. interface MyInterface { fun bar () fun foo () { // 可选的方法体 } }THIS 表达式
This 表达式. 为了表示当前的 接收者 我们使用 this 表达式:. 在 类 的成员中, this 指的是该类的当前对象。. 在 扩展函数 或者 带有接收者的函数字面值 中, this 表示在点左侧传递的 接收者 参数。. 如果 this 没有限定符,它指的是最内层的包含它的作用域。.要
关键字与操作符修饰符关键字.
以下符号作为声明中修饰符列表中的关键字,并可用作其他上下文中 的标识符:. actual 表示 多平台项目 中的一个平台相关实现. abstract 将一个类或成员标记为 抽象. annotation 声明一个 注解类. companion 声明一个 伴生对象. const 将属性标记为 编译期 异常:TRY、CATCH、FINALLY、THROW、NOTHING try-表达式的返回值是 try 块中的最后一个表达式或者是(所有)catch 块中的最后一个表达式。finally 块中的内容不会影响表达式的结果。. 受检的异常.Kotlin
没有受检的异常。这其中有很多原因,但我们会提供一个简单的例子。 以下是 JDK 中 StringBuilder 类实现的一个示例接口: 返回与跳转:BREAK 与 CONTINUE 这些表达式的类型是 Nothing 类型。. Break 与 Continue标签. 在 Kotlin
中任何表达式都可以用标签(label)来标记。标签的格式为标识符后跟 @ 符号,例如:、都是有效的标签(参见语法)。 要为一个表达式加标签,我们只要在其前加标签即可。 KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away – consult extensive community resources or ask the Kotlin team directly. Jointhe community →.
教程 - KOTLIN 语言中文站TRANSLATE THIS PAGE 教程. 一系列完整的分步教程,让您了解如何用 Kotlin 完成不同的任务,从入门到编写 Android 应用程序等等。. 如果你有一个你想推荐到这里的教程,请告诉我们。. 我们乐于托管到这里并给予致谢!. 如果你喜欢边练边学,请尝试 在线 Kotlin 心印 来熟悉Kotlin
KOTLIN/NATIVE
将编译后的 Kotlin 代码包含进 用 C、 C++、 Swift、 Objective-C 以及其他语言编写的现有项目中会很容易。. 直接在 Kotlin/Native 中使用现有原生代码、 静态或动态 C 语言库 、 Swift/Objective-C 框架 、 图形引擎以及任何其他原生内容也很容易。. Kotlin/Native 库 有助于在多个 数据类 - KOTLIN 语言中文站TRANSLATE THIS PAGE 数据类. 我们经常创建一些只保存数据的类。. 在这些类中,一些标准函数往往是从 数据机械推导而来的。. 在 Kotlin 中,这叫做 数据类 并标记为 data :. 编译器自动从主构造函数中声明的所有属性导出以下成员:. copy () 函数(见下文)。. 为了确保生成的代码的协程概述
完整 Kotlin 参考(PDF) 完整 Kotlin 参考(字大PDF) 完整 Kotlin 参考(ePUB) 完整 Kotlin 参考(Mobi) 分组 - KOTLIN 语言中文站TRANSLATE THIS PAGE 改进翻译 分组. Kotlin 标准库提供用于对集合元素进行分组的扩展函数。 基本函数 groupBy() 使用一个 lambda 函数并返回一个 Map。 在此 Map 中,每个键都是 lambda 结果,而对应的值是返回此结果的元 List。例如,可以使用此函数将 String 列表按首字母分组。. 还可以使用第二个 lambda 参数(值转换函数 枚举类 - KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin 中的枚举类也有合成方法允许列出 定义的枚举常量以及通过名称获取枚举常量。. 这些方法的 签名如下(假设枚举类的名称是 EnumClass):.
如果指定的名称与类中定义的任何枚举常量均不匹配, valueOf () 方法将抛出 IllegalArgumentException 异常。. 自Kotlin 1.1 起
接口 - KOTLIN 语言中文站TRANSLATE THIS PAGE 接口. Kotlin 的接口可以既包含抽象方法的声明也包含 实现。. 与抽象类不同的是,接口无法保存状态。.它可以有
属性但必须声明为抽象或提供访问器实现。. 使用关键字 interface 来定义接口. interface MyInterface { fun bar () fun foo () { // 可选的方法体 } }解构声明
解构声明. 有时把一个对象 解构 成很多变量会很方便,例如: 这种语法称为 解构声明 。. 一个解构声明同时创建多个变量。. 我们已经声明了两个新变量: name 和 age ,并且可以独立使用它们:. 其中的 component1 () 和 component2 () 函数是在 Kotlin 中广泛使用的 约定加减操作符
有关 map 的 plus 和 minus 操作符的详细信息,请参见 Map 相关操作。 也为集合定义了广义赋值操作符 plusAssign (+=) 和 minusAssign (-=)。然而,对于只读集合,它们实际上使用 plus 或者 minus 操作符并尝试将结果赋值给同一变量。 因此,它们仅在由 var 声明的只读集合中可用。 对于可变集合,如果它是一个 KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away – consult extensive community resources or ask the Kotlin team directly. Jointhe community →.
教程 - KOTLIN 语言中文站TRANSLATE THIS PAGE 教程. 一系列完整的分步教程,让您了解如何用 Kotlin 完成不同的任务,从入门到编写 Android 应用程序等等。. 如果你有一个你想推荐到这里的教程,请告诉我们。. 我们乐于托管到这里并给予致谢!. 如果你喜欢边练边学,请尝试 在线 Kotlin 心印 来熟悉Kotlin
KOTLIN/NATIVE
将编译后的 Kotlin 代码包含进 用 C、 C++、 Swift、 Objective-C 以及其他语言编写的现有项目中会很容易。. 直接在 Kotlin/Native 中使用现有原生代码、 静态或动态 C 语言库 、 Swift/Objective-C 框架 、 图形引擎以及任何其他原生内容也很容易。. Kotlin/Native 库 有助于在多个 数据类 - KOTLIN 语言中文站TRANSLATE THIS PAGE 数据类. 我们经常创建一些只保存数据的类。. 在这些类中,一些标准函数往往是从 数据机械推导而来的。. 在 Kotlin 中,这叫做 数据类 并标记为 data :. 编译器自动从主构造函数中声明的所有属性导出以下成员:. copy () 函数(见下文)。. 为了确保生成的代码的协程概述
完整 Kotlin 参考(PDF) 完整 Kotlin 参考(字大PDF) 完整 Kotlin 参考(ePUB) 完整 Kotlin 参考(Mobi) 分组 - KOTLIN 语言中文站TRANSLATE THIS PAGE 改进翻译 分组. Kotlin 标准库提供用于对集合元素进行分组的扩展函数。 基本函数 groupBy() 使用一个 lambda 函数并返回一个 Map。 在此 Map 中,每个键都是 lambda 结果,而对应的值是返回此结果的元 List。例如,可以使用此函数将 String 列表按首字母分组。. 还可以使用第二个 lambda 参数(值转换函数 枚举类 - KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin 中的枚举类也有合成方法允许列出 定义的枚举常量以及通过名称获取枚举常量。. 这些方法的 签名如下(假设枚举类的名称是 EnumClass):.
如果指定的名称与类中定义的任何枚举常量均不匹配, valueOf () 方法将抛出 IllegalArgumentException 异常。. 自Kotlin 1.1 起
接口 - KOTLIN 语言中文站TRANSLATE THIS PAGE 接口. Kotlin 的接口可以既包含抽象方法的声明也包含 实现。. 与抽象类不同的是,接口无法保存状态。.它可以有
属性但必须声明为抽象或提供访问器实现。. 使用关键字 interface 来定义接口. interface MyInterface { fun bar () fun foo () { // 可选的方法体 } }解构声明
解构声明. 有时把一个对象 解构 成很多变量会很方便,例如: 这种语法称为 解构声明 。. 一个解构声明同时创建多个变量。. 我们已经声明了两个新变量: name 和 age ,并且可以独立使用它们:. 其中的 component1 () 和 component2 () 函数是在 Kotlin 中广泛使用的 约定加减操作符
有关 map 的 plus 和 minus 操作符的详细信息,请参见 Map 相关操作。 也为集合定义了广义赋值操作符 plusAssign (+=) 和 minusAssign (-=)。然而,对于只读集合,它们实际上使用 plus 或者 minus 操作符并尝试将结果赋值给同一变量。 因此,它们仅在由 var 声明的只读集合中可用。 对于可变集合,如果它是一个 KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away – consult extensive community resources or ask the Kotlin team directly. Jointhe community →.
KOTLIN/NATIVE
将编译后的 Kotlin 代码包含进 用 C、 C++、 Swift、 Objective-C 以及其他语言编写的现有项目中会很容易。. 直接在 Kotlin/Native 中使用现有原生代码、 静态或动态 C 语言库 、 Swift/Objective-C 框架 、 图形引擎以及任何其他原生内容也很容易。. Kotlin/Native 库 有助于在多个 迭代器 - KOTLIN 语言中文站TRANSLATE THIS PAGE 迭代器. 对于遍历集合元素, Kotlin 标准库支持迭代器
的常用机制——对象可按顺序提供对元素的访问权限,而不会暴露集合的底层结构。. 当需要逐个处理集合的所有元素(例如打印值或对其进行类似更新)时,迭代器非常有用。. Iterable 接口的继承者(包括 分组 - KOTLIN 语言中文站TRANSLATE THIS PAGE 改进翻译 分组. Kotlin 标准库提供用于对集合元素进行分组的扩展函数。 基本函数 groupBy() 使用一个 lambda 函数并返回一个 Map。 在此 Map 中,每个键都是 lambda 结果,而对应的值是返回此结果的元 List。例如,可以使用此函数将 String 列表按首字母分组。. 还可以使用第二个 lambda 参数(值转换函数 委托 - KOTLIN 语言中文站TRANSLATE THIS PAGE委托模式
已经证明是实现继承的一个很好的替代方式, 而 Kotlin 可以零样板代码地原生支持它。. Derived 类可以通过将其所有公有成员都委托给指定对象来实现一个接口 Base :. interface Base { fun print () } class BaseImpl (val x: Int) : Base { override fun print () { print (x) } } class 接口 - KOTLIN 语言中文站TRANSLATE THIS PAGE 接口. Kotlin 的接口可以既包含抽象方法的声明也包含 实现。. 与抽象类不同的是,接口无法保存状态。.它可以有
属性但必须声明为抽象或提供访问器实现。. 使用关键字 interface 来定义接口. interface MyInterface { fun bar () fun foo () { // 可选的方法体 } }THIS 表达式
This 表达式. 为了表示当前的 接收者 我们使用 this 表达式:. 在 类 的成员中, this 指的是该类的当前对象。. 在 扩展函数 或者 带有接收者的函数字面值 中, this 表示在点左侧传递的 接收者 参数。. 如果 this 没有限定符,它指的是最内层的包含它的作用域。.要
关键字与操作符修饰符关键字.
以下符号作为声明中修饰符列表中的关键字,并可用作其他上下文中 的标识符:. actual 表示 多平台项目 中的一个平台相关实现. abstract 将一个类或成员标记为 抽象. annotation 声明一个 注解类. companion 声明一个 伴生对象. const 将属性标记为 编译期 异常:TRY、CATCH、FINALLY、THROW、NOTHING try-表达式的返回值是 try 块中的最后一个表达式或者是(所有)catch 块中的最后一个表达式。finally 块中的内容不会影响表达式的结果。. 受检的异常.Kotlin
没有受检的异常。这其中有很多原因,但我们会提供一个简单的例子。 以下是 JDK 中 StringBuilder 类实现的一个示例接口: 返回与跳转:BREAK 与 CONTINUE 这些表达式的类型是 Nothing 类型。. Break 与 Continue标签. 在 Kotlin
中任何表达式都可以用标签(label)来标记。标签的格式为标识符后跟 @ 符号,例如:、都是有效的标签(参见语法)。 要为一个表达式加标签,我们只要在其前加标签即可。 KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away – consult extensive community resources or ask the Kotlin team directly. Jointhe community →.
协程概述
完整 Kotlin 参考(PDF) 完整 Kotlin 参考(字大PDF) 完整 Kotlin 参考(ePUB) 完整 Kotlin 参考(Mobi) 数据类 - KOTLIN 语言中文站TRANSLATE THIS PAGE 数据类. 我们经常创建一些只保存数据的类。. 在这些类中,一些标准函数往往是从 数据机械推导而来的。. 在 Kotlin 中,这叫做 数据类 并标记为 data :. 编译器自动从主构造函数中声明的所有属性导出以下成员:. copy () 函数(见下文)。. 为了确保生成的代码的基本语法
目录与包的结构无需匹配:源代码可以在文件系统的任意位置。 参见包。. 程序入口点. Kotlin 应用程序的入口点是 main函数。
分组 - KOTLIN 语言中文站TRANSLATE THIS PAGE 改进翻译 分组. Kotlin 标准库提供用于对集合元素进行分组的扩展函数。 基本函数 groupBy() 使用一个 lambda 函数并返回一个 Map。 在此 Map 中,每个键都是 lambda 结果,而对应的值是返回此结果的元 List。例如,可以使用此函数将 String 列表按首字母分组。. 还可以使用第二个 lambda 参数(值转换函数 接口 - KOTLIN 语言中文站TRANSLATE THIS PAGE 接口. Kotlin 的接口可以既包含抽象方法的声明也包含 实现。. 与抽象类不同的是,接口无法保存状态。.它可以有
属性但必须声明为抽象或提供访问器实现。. 使用关键字 interface 来定义接口. interface MyInterface { fun bar () fun foo () { // 可选的方法体 } } xxxxxxxxxx包与导入
源文件所有内容(无论是类还是函数)都包含在声明的包内。 所以上例中 printMessage() 的全名是 org.example.printMessage, 而 Message 的全名是 org.example.Message。. 如果没有指明包,该文件的内容属于无名字的默认包。聚合操作
集合聚合操作. Kotlin 集合包含用于常用的 聚合操作 (基于集合内容返回单个值的操作)的函数 。. 其中大多数是众所周知的,并且其工作方式与在其他语言中相同。. 还有一些通过某些选择器函数或自定义 Comparator 来检索最小和最大元素的函数。. maxBy () / minBy 枚举类 - KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin 中的枚举类也有合成方法允许列出 定义的枚举常量以及通过名称获取枚举常量。. 这些方法的 签名如下(假设枚举类的名称是 EnumClass):.
如果指定的名称与类中定义的任何枚举常量均不匹配, valueOf () 方法将抛出 IllegalArgumentException 异常。. 自Kotlin 1.1 起
密封类 - KOTLIN 语言中文站TRANSLATE THIS PAGE密封类.
密封类用来表示受限的类继承结构:当一个值为有限几种的 类型、而不能有任何其他类型时。. 在某种意义上,他们是枚举类的扩展:枚举类型的值集合 也是受限的,但每个枚举常量只存在一个实例,而密封类 的一个子类可以有可包含状态的多个实例 KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away – consult extensive community resources or ask the Kotlin team directly. Jointhe community →.
协程概述
完整 Kotlin 参考(PDF) 完整 Kotlin 参考(字大PDF) 完整 Kotlin 参考(ePUB) 完整 Kotlin 参考(Mobi) 数据类 - KOTLIN 语言中文站TRANSLATE THIS PAGE 数据类. 我们经常创建一些只保存数据的类。. 在这些类中,一些标准函数往往是从 数据机械推导而来的。. 在 Kotlin 中,这叫做 数据类 并标记为 data :. 编译器自动从主构造函数中声明的所有属性导出以下成员:. copy () 函数(见下文)。. 为了确保生成的代码的基本语法
目录与包的结构无需匹配:源代码可以在文件系统的任意位置。 参见包。. 程序入口点. Kotlin 应用程序的入口点是 main函数。
分组 - KOTLIN 语言中文站TRANSLATE THIS PAGE 改进翻译 分组. Kotlin 标准库提供用于对集合元素进行分组的扩展函数。 基本函数 groupBy() 使用一个 lambda 函数并返回一个 Map。 在此 Map 中,每个键都是 lambda 结果,而对应的值是返回此结果的元 List。例如,可以使用此函数将 String 列表按首字母分组。. 还可以使用第二个 lambda 参数(值转换函数 接口 - KOTLIN 语言中文站TRANSLATE THIS PAGE 接口. Kotlin 的接口可以既包含抽象方法的声明也包含 实现。. 与抽象类不同的是,接口无法保存状态。.它可以有
属性但必须声明为抽象或提供访问器实现。. 使用关键字 interface 来定义接口. interface MyInterface { fun bar () fun foo () { // 可选的方法体 } } xxxxxxxxxx包与导入
源文件所有内容(无论是类还是函数)都包含在声明的包内。 所以上例中 printMessage() 的全名是 org.example.printMessage, 而 Message 的全名是 org.example.Message。. 如果没有指明包,该文件的内容属于无名字的默认包。聚合操作
集合聚合操作. Kotlin 集合包含用于常用的 聚合操作 (基于集合内容返回单个值的操作)的函数 。. 其中大多数是众所周知的,并且其工作方式与在其他语言中相同。. 还有一些通过某些选择器函数或自定义 Comparator 来检索最小和最大元素的函数。. maxBy () / minBy 枚举类 - KOTLIN 语言中文站TRANSLATE THIS PAGE Kotlin 中的枚举类也有合成方法允许列出 定义的枚举常量以及通过名称获取枚举常量。. 这些方法的 签名如下(假设枚举类的名称是 EnumClass):.
如果指定的名称与类中定义的任何枚举常量均不匹配, valueOf () 方法将抛出 IllegalArgumentException 异常。. 自Kotlin 1.1 起
密封类 - KOTLIN 语言中文站TRANSLATE THIS PAGE密封类.
密封类用来表示受限的类继承结构:当一个值为有限几种的 类型、而不能有任何其他类型时。. 在某种意义上,他们是枚举类的扩展:枚举类型的值集合 也是受限的,但每个枚举常量只存在一个实例,而密封类 的一个子类可以有可包含状态的多个实例 教程 - KOTLIN 语言中文站TRANSLATE THIS PAGE 教程. 一系列完整的分步教程,让您了解如何用 Kotlin 完成不同的任务,从入门到编写 Android 应用程序等等。. 如果你有一个你想推荐到这里的教程,请告诉我们。. 我们乐于托管到这里并给予致谢!. 如果你喜欢边练边学,请尝试 在线 Kotlin 心印 来熟悉Kotlin
基本语法
目录与包的结构无需匹配:源代码可以在文件系统的任意位置。 参见包。. 程序入口点. Kotlin 应用程序的入口点是 main函数。
使用 KAPT
改进翻译 Kotlin 注解处理. 译注:kapt 即 Kotlin annotation processing tool(Kotlin 注解处理工具)缩写。 在 Kotlin 中通过 kapt 编译器插件支持注解处理器(参见JSR 269)。. 简而言之,你可以在 Kotlin 项目中使用像 Dagger 或者 Data Binding 这样的库。. 关于如何将 kapt 插件应用于 Gradle/Maven 构建中,请阅读 接口 - KOTLIN 语言中文站TRANSLATE THIS PAGE 接口. Kotlin 的接口可以既包含抽象方法的声明也包含 实现。. 与抽象类不同的是,接口无法保存状态。.它可以有
属性但必须声明为抽象或提供访问器实现。. 使用关键字 interface 来定义接口. interface MyInterface { fun bar () fun foo () { // 可选的方法体 } } xxxxxxxxxx 关键字与操作符修饰符关键字.
以下符号作为声明中修饰符列表中的关键字,并可用作其他上下文中 的标识符:. actual 表示 多平台项目 中的一个平台相关实现. abstract 将一个类或成员标记为 抽象. annotation 声明一个 注解类. companion 声明一个 伴生对象. const 将属性标记为 编译期聚合操作
集合聚合操作. Kotlin 集合包含用于常用的 聚合操作 (基于集合内容返回单个值的操作)的函数 。. 其中大多数是众所周知的,并且其工作方式与在其他语言中相同。. 还有一些通过某些选择器函数或自定义 Comparator 来检索最小和最大元素的函数。. maxBy () / minBy解构声明
解构声明. 有时把一个对象 解构 成很多变量会很方便,例如: 这种语法称为 解构声明 。. 一个解构声明同时创建多个变量。. 我们已经声明了两个新变量: name 和 age ,并且可以独立使用它们:. 其中的 component1 () 和 component2 () 函数是在 Kotlin 中广泛使用的 约定 函数式接口(SAM 接口) SAM 转换. 对于函数式接口,可以通过 lambda表达式实现 SAM
转换,从而使代码更简洁、更有可读性。. 使用 lambda 表达式可以替代手动创建实现函数式接口的类。 通过 SAM 转换, Kotlin 可以将其签名与接口的单个抽象方法的签名匹配的任何 lambda 表达式转换为实现该接口的类的实例。过滤集合
改进翻译 过滤. 过滤是最常用的集合处理任务之一。在Kotlin中,过滤条件由 谓词 定义——接受一个集合元素并且返回布尔值的 lambda 表达式:true 说明给定元素与谓词匹配,false 则表示不匹配。. 标准库包含了一组让你能够通过单个调用就可以过滤集合的扩展函数。 空安全 - KOTLIN 语言中文站TRANSLATE THIS PAGE 改进翻译 空安全 可空类型与非空类型. Kotlin 的类型系统旨在消除来自代码空引用的危险,也称为《十亿美元的错误》。. 许多编程语言(包括 Java)中最常见的陷阱之一,就是访问空引用的成员会导致空引用新书上架:
《Kotlin编程实践》 本站译者乔禹昂译购买
《深入理解Kotlin协程》 中文社区负责人霍丙乾著购买
Kotlin v1.4.20
* 解决方案
* 多平台移动端 ↗* 服务器端 ↗
* 原生开发
* Web 开发
* 数据科学
* Android
* 博客
* 论坛
* 文档
* 社区
* 教学
* 演练
让开发人员更快乐的 一门现代编程语言。 入门 为什么选用 Kotlin由 JetBrains
以及开源贡献者开发
多平台移动端
在移动平台间共享代码的自然方式服务端
谙熟 JVM 技术的现代开发体验WEB 前端
将项目扩展到 Web 还支持:数据科学Android
试用 KOTLIN
最简版
面向对象的 Hello协程
更多示例
fun main() {
println("Hello World")}
xxxxxxxxxx
fun main() {
println("Hello World")}
Target platform: JVMRunning on kotlin v. 1.5.0 class Greeter(val name: String) {fun greet() {
println("Hello, $name")}
}
fun main(args: Array}
xxxxxxxxxx
class Greeter(val name: String) {fun greet() {
println("Hello, $name")}
}
fun main(args: Array}
Target platform: JVMRunning on kotlin v. 1.5.0 import kotlinx.coroutines.*//sampleStart
suspend fun main() = coroutineScope { for (i in 0 until 10) {launch {
delay(1000L - i * 10)print("$i ")
}
}
}
//sampleEnd
xxxxxxxxxx
suspend fun main() = coroutineScope { for (i in 0 until 10) {launch {
delay(1000L - i * 10)print("$i ")
}
}
}
Target platform: JVMRunning on kotlin v. 1.5.0KOTLIN 近期动态
blog.jetbrains.com
新的发版节奏 ↗blog.jetbrains.com
KOTLINX.SERIALIZATION 1.0 发布了 ↗blog.jetbrains.com
KOTLIN 公开路线图 ↗blog.jetbrains.com
KOTLIN 多平台移动端发布 ALPHA 版 ↗WHY KOTLIN
MODERN, CONCISE AND SAFE PROGRAMMING LANGUAGE* 简洁
* 安全
* 互操作性
*
/*
使用一行代码创建一个包含 getters、 setters、 `equals()`、 `hashCode()`、 `toString()` 以及 `copy()` 的 POJO:*/
data class Customer(val name: String, val email: String, val company: String) // 或者使用 lambda 表达式来过滤列表: val positiveNumbers = list.filter { it > 0 } // 想要单例?创建一个 object 就可以了: object ThisIsASingleton { val companyName: String = "JetBrains"}
xxxxxxxxxx
/*
使用一行代码创建一个包含 getters、 setters、 `equals()`、 `hashCode()`、 `toString()` 以及 `copy()` 的 POJO:*/
data class Customer(val name: String, val email: String, val company: String)
// 或者使用 lambda 表达式来过滤列表:
val positiveNumbers = list.filter { it > 0 }
// 想要单例?创建一个 object 就可以了:
object ThisIsASingleton { val companyName: String = "JetBrains"}
*
/*
彻底告别那些烦人的 NullPointerException——著名的十亿美金的错误*/
var output: String output = null // 编译错误 // Kotlin 可以保护你避免对可空类型进行误操作 val name: String? = null // 可空类型 println(name.length()) // 编译错误 // 并且如果类型检测正确,编译器会为你做自动类型转换 fun calculateTotal(obj: Any) { if (obj is Invoice) obj.calculateTotal()}
/*
*
/*
使用 JVM 上的任何现有库,因为有 100% 的兼容性,包括 SAM 支持。*/
import io.reactivex.Flowable import io.reactivex.schedulers.SchedulersFlowable
.fromCallable {
Thread.sleep(1000) // 模仿高开销的计算"Done"
}
.subscribeOn(Schedulers.io()) .observeOn(Schedulers.single()) .subscribe(::println, Throwable::printStackTrace)/*
// 无论是面向 JVM 还是 JavaScript 平台,都可用 Kotlin 写代码然后部署到你想要的地方 import kotlin.browser.windowfun onLoad() {
window.document.body!!.innerHTML += "Hello, Kotlin!"
}
// 无论是面向 JVM 还是 JavaScript 平台,都可用 Kotlin 写代码然后部署到你想要的地方 Easy to pick up, so you can create powerful applications immediately.Get started →
A PRODUCTIVE WAY TO WRITE SERVER‑SIDE APPLICATIONS Compatible with the Java ecosystem. Use your favorite JVM frameworksand libraries.
Learn more →
NATURAL WAY TO SHARE CODE BETWEEN MOBILE PLATFORMS Write the business logic for iOS and Android apps just once. Easily make existing applications cross platform.Browse KMM →
BIG, FRIENDLY AND HELPFUL COMMUNITY Kotlin has great support and many contributors in its fast-growing global community. Enjoy the benefits of a rich ecosystem with a wide range of community libraries. Help is never far away – consult extensive community resources or ask the Kotlin team directly. Join the community →KOTLIN 用途集锦
*
GRADLE
Gradle 正引入 Kotlin 作为编写脚本的语言。*
CORDA
Corda
是一个开源分布式分类账号平台,由各大银行提供支持,完全由Kotlin 构建 。
*
EVERNOTE
Evernote 最近 将 Kotlin 整合到了他们的
Android 客户端
*
COURSERA
Coursera Android 应用程序部分用 Kotlin 编写*
SPRING
Spring 采用 Kotlin 的语言特性 来提供更简洁的API
*
ATLASSIAN
Trello Android
应用程序中的所有新代码都用 Kotlin。 立即开始使用 KOTLIN! 在你喜欢的 IDE 中 构建你的第一个 Kotlin 应用入门
*
*
*
*
*
向 Kotlin 贡献 版本发布 宣传资料 安全 博客 问题追踪 Kotlin™ 商标受 Kotlin 基金会保护并采用
Apache 2 授权许可。 Kotlin 与 Kotlin 官方英文站由 JetBrains 支持与开发 本站由灰蓝天际 、 晓_晨DEV、 乔禹昂 、
高金龙 、 HoshinoTented、 刘文俊
、 常少威 、
Yue-plus 、 Guolianxing等
译
Kotlin 与 Kotlin 官方英文站由 JetBrains 支持与开发 本站由灰蓝天际 、 晓_晨DEV、 乔禹昂 、
高金龙 、 HoshinoTented、 刘文俊
、 常少威 、
Yue-plus 、 Guolianxing等
译
esc
Details
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0