提交 773c6c76 编写于 作者: W wizardforcel

2019-11-10 22:04:11

上级 df8ffc9f
......@@ -95,7 +95,7 @@ Hello, World!
我们使用`kotlin`工具运行该程序。
## 包装 Kotlin 程序
## 打包 Kotlin 程序
接下来,我们将展示如何将 Kotlin 程序打包到 Java JAR 文件中。
......
......@@ -76,7 +76,7 @@ rain
这是程序的输出。
## Kotlin 变量延迟分配
## Kotlin 变量延迟赋值
在下面的示例中,我们在声明变量后推迟变量的赋值。
......@@ -120,7 +120,7 @@ input = readLine()
使用`readLine()`从用户读取输入。 目前,我们已经为`input`变量分配了一个值。
## 科特林属性
## Kotlin 属性
在类中创建的变量是属性。 只读变量具有默认访问器和可变变量访问器和变异器。
......@@ -185,4 +185,4 @@ Person(name='Peter', age=23)
这是输出。
在本教程中,我们使用了 Kotlin 中的变量。 您可能也对相关教程感兴趣: [Kotlin 列表教程](/kotlin/lists/)[Kotlin 操作员教程](/kotlin/operators/)[Kotlin 字符串教程](/kotlin/strings/)[Kotlin 控制流教程](/kotlin/controlflow/)[Kotlin 阵列教程](/kotlin/arrays/)[Kotlin 读取文件教程](/kotlin/readfile/)[Kotlin 写入文件教程](/kotlin/writefile/)
\ No newline at end of file
在本教程中,我们使用了 Kotlin 中的变量。 您可能也对相关教程感兴趣: [Kotlin 列表教程](/kotlin/lists/)[Kotlin 操作员教程](/kotlin/operators/)[Kotlin 字符串教程](/kotlin/strings/)[Kotlin 控制流教程](/kotlin/controlflow/)[Kotlin 数组教程](/kotlin/arrays/)[Kotlin 读取文件教程](/kotlin/readfile/)[Kotlin 写入文件教程](/kotlin/writefile/)
\ No newline at end of file
# Kotlin 的运营商
# Kotlin 的运算符
> 原文: [http://zetcode.com/kotlin/operators/](http://zetcode.com/kotlin/operators/)
......@@ -74,9 +74,9 @@ x = x + 1
此代码行导致语法错误。 我们无法为文字分配值。
## Kotlin 扩充指派运算子
## Kotlin 扩展赋值运算子
赋值运算符是由两个运算符组成的速记运算符。 增强的赋值运算符在其他编程语言中也称为复合赋值运算符。
赋值运算符是由两个运算符组成的速记运算符。 增强的赋值运算符在其他编程语言中也称为复合赋值运算符。
```kt
a = a + 3
......@@ -86,7 +86,7 @@ a += 3
`+=`复合运算符是这些速记运算符之一。 以上两个表达式相等。 将值 3 添加到变量 a 中。
Kotlin 扩分配运算符为:
Kotlin 扩分配运算符为:
```kt
+= -= *= /= %=
......@@ -149,7 +149,7 @@ a *= 3
这是示例输出。
## Kotlin 串联字符串
## Kotlin 连接字符串
在 Kotlin 中,+运算符还用于连接字符串。
......@@ -507,7 +507,7 @@ fun main(args: Array<String>) {
在代码示例中,我们有四个表达式。 这些表达式比较整数值。 每个表达式的结果为 true 或 false。 在 Kotlin 中,我们使用`==`比较数字。 (某些语言(例如 Ada,Visual Basic 或 Pascal)使用`=`比较数字。)
## Kotlin 按位运算
## Kotlin 按位运算
与 Java 不同,Kotlin 中没有按位运算符。 Kotlin 已经命名了执行按位运算的函数。
......@@ -555,7 +555,7 @@ println(3 or 6) // prints 7
```
## Kotlin 运算符
## Kotlin `is`运算符
要在运行时检查对象是否符合给定类型,我们可以使用`is`运算符或其否定形式`!is`
......@@ -852,9 +852,9 @@ fun main(args: Array<String>) {
在示例中,我们使用`[]`运算符从数组中检索两个值。
## Kotlin 参照相等运算符
## Kotlin 引用相等运算符
Kotlin 区分结构平等和参照平等。 结构相等运算符(`==`)检查两个对象是否具有相同的内容。 引用相等运算符(`===`)检查变量是否指向内存中的同一对象。
Kotlin 区分结构相等和引用相等。 结构相等运算符(`==`)检查两个对象是否具有相同的内容。 引用相等运算符(`===`)检查变量是否指向内存中的同一对象。
`KotlinreferentialEqualityOperatorEx.kt`
......
# 表达时的科特琳
# Kotlin `when`表达式
> 原文: [http://zetcode.com/kotlin/when/](http://zetcode.com/kotlin/when/)
......@@ -37,7 +37,7 @@ fun main() {
在该示例中,我们基于整数值打印星期几。 依次测试七个不同的 brance。 如果满足其中之一,则其余的将被跳过。 如果都不满足,则执行 else 分支。
## 将值分组时的 Kotlin
## Kotlin `when`将值分组
可以使用逗号运算符在分支中将值分组。
......@@ -61,9 +61,9 @@ fun main() {
在示例中,我们将值分组以形成两个分支:工作日和周末。
## Kotlin 什么时候表达示例
## Kotlin `when`表达式示例
Kotlin 什么时候可以用作表达式。 返回满意分支的值。
Kotlin `when`可以用作表达式。 返回满意分支的值。
`when_expression.kt`
......@@ -95,7 +95,7 @@ fun main() {
我们确定当前工作日。 来自匹配分支的字符串被分配给`msg`变量,该变量随后被打印到控制台。
## Kotlin 什么时候射程
## Kotlin `when`范围
我们可以在 when 分支中测试值的范围。 (这也可以通过集合来完成。)
......@@ -122,7 +122,7 @@ fun main() {
我们有一个年龄变量。 我们使用 Kotlin 范围将值分配给年龄组。
## 枚举时的 Kotlin
## Kotlin `when`枚举
Kotlin 表达式可与枚举一起使用时。
......@@ -152,9 +152,9 @@ fun main() {
我们有一个`Season`枚举。 我们将枚举作为 when 表达式的参数传递。
## 没有争论的科特林
## Kotlin `when`不带参数
Kotlin 何时可以不带参数使用表达式。
Kotlin `when`可以不带参数使用表达式。
`random_val.kt`
......@@ -178,7 +178,7 @@ fun main() {
在示例中,我们生成一个随机值。 我们使用 when 表达式测试该值,而不将其作为参数放在圆括号中。
## Kotlin 什么时候键入
## Kotlin `when`类型
我们可以使用`is`运算符检查类型。
......
# Kotlin 阵列
# Kotlin 数组
> 原文: [http://zetcode.com/kotlin/arrays/](http://zetcode.com/kotlin/arrays/)
......@@ -102,9 +102,9 @@ println(nums[2])
我们用索引 2 打印该值,即数组中的第三个元素。 数组值的索引添加在一对方括号之间。
## Kotlin 阵列基本操作
## Kotlin 数组基本操作
以下示例介绍了 Kotlin 阵列的一些基本操作。
以下示例介绍了 Kotlin 数组的一些基本操作。
`KotlinArrayBasicOperations.kt`
......@@ -192,7 +192,7 @@ println(nums.indexOf(5))
这是输出。
## Kotlin 阵列内置
## Kotlin 数组内置方法
在下面的示例中,我们使用一些内置的数组方法。
......@@ -250,7 +250,7 @@ The minimum is 1
这是示例的输出。
## Kotlin 阵列
## Kotlin 数组计
`count()`方法对数组中的元素进行计数。
......@@ -372,7 +372,7 @@ nums[6] = 7
这是示例的输出。
## 在 Kotlin 中对数组进行排序
## Kotlin 数组排序
我们展示了如何对 Kotlin 数组进行排序。
......@@ -433,7 +433,7 @@ fun main() {
这是输出。
## Kotlin 过滤阵列
## Kotlin 数组过滤
使用`filter()`方法,我们可以过滤数组中的数据。
......@@ -460,7 +460,7 @@ fun main() {
这是输出。
## Kotlin 阵列查找元素
## Kotlin 数组查找元素
我们可以使用`find()``findLast()`找到元素。
......@@ -492,9 +492,9 @@ The last even value is: 8
这是输出。
## Kotlin 阵列缩减
## Kotlin 数组归约
精简是将数组值聚合为单个值的终端操作。 `reduce()`方法对累加器和数组中的每个元素(从左到右)应用一个函数,以将其减小为单个值。
归约是将数组值聚合为单个值的终端操作。 `reduce()`方法对累加器和数组中的每个元素(从左到右)应用一个函数,以将其减小为单个值。
`KotlinArrayReduce.kt`
......@@ -528,7 +528,7 @@ val total = nums.reduce { product, next -> product * next }
这是输出。
## Kotlin 阵列全部
## Kotlin 数组`all()`
如果所有元素都匹配给定谓词,则`all()`方法返回`true`
......@@ -563,7 +563,7 @@ The array contains odd values
该数组包含一些奇数值。
## Kotlin 阵列任何
## Kotlin 数组`any()`
如果至少一个元素与给定谓词匹配,则`any()`方法返回`true`
......
# 科特林山脉
# Kotlin 范围
> 原文: [http://zetcode.com/kotlin/ranges/](http://zetcode.com/kotlin/ranges/)
......@@ -8,7 +8,7 @@ Kotlin Ranges 教程显示了如何在 Kotlin 中使用范围。
使用`..`运算符或`rangeTo()``downTo()`函数创建 Kotlin 范围。 Kotlin 范围默认为包含范围; 也就是说,1..3 创建一个 1、2、3 值的范围。 两个值之间的距离由步长定义。 默认步骤是 1。
## Kotlin 系列创作
## Kotlin 创建范围
以下示例显示了如何在 Kotlin 中创建简单范围。
......@@ -126,7 +126,7 @@ k j i h g f e d c b a
这是输出。
## 每个 Kotlin 范围
## Kotlin 范围`forEach()`
我们可以使用`forEach()`函数遍历值的范围。
......@@ -228,7 +228,7 @@ f
这是输出。
## 科特林范围步
## Kotlin 范围`step`
使用`step`关键字,我们可以定义范围值之间的步长。
......@@ -291,9 +291,9 @@ Kotlin 范围包含`last`,`first`和`step`属性,这些属性返回最后一
这是输出。
## Kotlin 范围过滤器,缩小,映射
## Kotlin 范围过滤器,归约,映射
Kotlin 范围包含过滤,缩小和映射操作。
Kotlin 范围包含过滤,归约和映射操作。
`KotlinRangeFilterReduceMap.kt`
......
# 科特林蛇
# Kotlin Snake
> 原文: [http://zetcode.com/kotlin/snake/](http://zetcode.com/kotlin/snake/)
......@@ -6,11 +6,11 @@ Kotlin Snake 游戏教程展示了如何使用 Swing 在 Kotlin 中创建蛇游
源代码和图像可从作者的 Github [Kotlin-Snake-Game](https://github.com/janbodnar/Kotlin-Snake-Game) 存储库中获得。
##
## Snake
Snake 是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 游戏的目的是尽可能多地吃苹果。 当蛇吃了一个苹果时,它的身体就长了。 蛇必须避开墙壁和自己的身体。 该游戏有时称为 Nibbles 。
## 摇摆
## Swing
Swing 是 Java 编程语言的主要 GUI 工具包。 它是 JFC(Java 基础类)的一部分,JFC 是用于为 Java 程序提供图形用户界面的 API。
......
......@@ -6,7 +6,7 @@ Kotlin Swing 教程展示了如何在 Kotlin 中创建 Swing GUI 应用。 代
Swing 是 Java 编程语言的主要 GUI 工具包。 它是 JFC(Java 基础类)的一部分,JFC 是用于为 Java 程序提供图形用户界面的 API。
## Kotlin 秋千 JFrame
## Kotlin Swing `JFrame`
在第一个示例中,我们在屏幕上显示一个基本窗口。 使用`JFrame`创建主应用窗口。
......@@ -102,7 +102,7 @@ EventQueue.invokeLater(::createAndShowGUI)
Figure: Simple example
## Kotlin 摇摆 JButton
## Kotlin Swing `JButton`
在下一个示例中,我们有一个关闭按钮。 使用`JButton`创建一个按钮组件。 当我们单击按钮时,应用终止。
......@@ -223,7 +223,7 @@ gl.setVerticalGroup(gl.createSequentialGroup()
Figure: Close button
## Kotlin Swing JLabel
## Kotlin Swing `JLabel`
`JLabel`组件用于显示文本,颜色或图像。
......@@ -359,7 +359,7 @@ val labels = stdCols.map {
Figure: Standard colours
## JCheckBox
## `JCheckBox`
`JCheckBox`是带有标签的框,该标签具有两种状态:开和关。 如果选中此复选框,则在复选框中用勾号表示。 复选框可用于在启动时显示或隐藏启动屏幕,切换工具栏的可见性等。
......@@ -463,7 +463,7 @@ checkBox.addItemListener { e ->
Figure: JCheckBox
## 科特林秋千图标
## Kotlin Swing 图标
在下一个示例中,我们在`JLabel`组件中显示图标。
......
# Kotlin 琴弦
# Kotlin 字符串
> 原文: [http://zetcode.com/kotlin/strings/](http://zetcode.com/kotlin/strings/)
......@@ -159,7 +159,7 @@ The string has 20 characters
这是输出。
## Kotlin 比较字符串
## Kotlin 字符串比较
我们可以使用`==`运算符和`compareTo()`方法来比较字符串内容。
......@@ -257,7 +257,7 @@ Line 3:
这是输出。
## Kotlin 琴弦盒
## Kotlin 字符串大小写
Kotlin 具有处理字符串字符大小写的方法。
......@@ -347,7 +347,7 @@ The string is blank
这是示例的输出。
## Kotlin 字符串空格剥离
## Kotlin 字符串空格去除
我们经常需要从字符串中去除空格字符。
......@@ -521,7 +521,7 @@ val res = s.filter { e -> e.isEnglishVowel()}
扩展功能在`filter()`方法中调用。
## Kotlin 字符串 startsWith / endsWith
## Kotlin 字符串 `startsWith`/`endsWith`
如果字符串以指定的前缀开头,则`startsWith()`方法返回 true;如果字符串以指定的字符结尾,则`endsWith()`返回 true。
......@@ -616,7 +616,7 @@ fun main(args: Array<String>) {
该示例用多雨代替晴天。 返回一个新的修改后的字符串。 原始字符串未修改。
## Kotlin toString
## Kotlin `toString`
在字符串上下文中使用对象时,将调用`toString()`方法; 例如 它被打印到控制台。 其目的是提供对象的字符串表示形式。
......@@ -665,7 +665,7 @@ Prague has population 1280000
## Kotlin 原始字符串
原始字符串由三引号“”“分隔。它没有转义,并且可以包含换行符和任何其他字符。
原始字符串由三引号`"""`分隔。它没有转义,并且可以包含换行符和任何其他字符。
`KotlinRawString.kt`
......
......@@ -6,7 +6,7 @@ Kotlin 列表教程显示了如何在 Kotlin 中使用列表。 列表是元素
Kotlin 区分只读列表和可变列表。 用`listOf()`创建只读列表,用`mutableListOf()`创建可变列表。
## Kotlin listOf()
## Kotlin `listOf()`
`listOf()`方法在 Kotlin 中创建一个新的只读列表。
......@@ -164,7 +164,7 @@ The last index of the list is 8
这是输出。
## Kotlin 清单计数
## Kotlin 列表计数
`count()`方法返回列表中的元素数。
......@@ -229,7 +229,7 @@ There are 5 even values
这是输出。
## Kotlin 列第一个和最后一个元素
## Kotlin 列第一个和最后一个元素
我们有方法来获取列表的第一个和最后一个元素。
......@@ -728,7 +728,7 @@ The list is empty
这是输出。
## Kotlin 列表片
## Kotlin 列表
切片是列表的一部分。 可以使用`slice()`方法创建切片。 该方法获取要拾取的元素的索引。
......@@ -924,7 +924,7 @@ Car(name=Mercedes, price=18600)
这是输出。
## 科特林 List map
## Kotlin 列表映射
映射操作通过在列表的每个元素上应用转换函数来返回修改后的列表。
......@@ -952,7 +952,7 @@ fun main() {
这是示例输出。
## Kotlin 清单减少
## Kotlin 列表归约
归约是将列表值聚合为单个值的终端操作。 `reduce()`方法对一个累加器和每个元素(从左到右)应用一个函数,以将其减小为单个值。
......@@ -1000,7 +1000,7 @@ black-blue-white-green-red
这是输出。
## 科特林单折
## 列表折叠
折叠操作类似于缩小操作。 折叠是将列表值聚合为单个值的终端操作。 区别在于折叠从初始值开始。
......@@ -1021,7 +1021,7 @@ fun main() {
```
我们有一份支出清单。 这些费用适用于初始可用现金金额。
我们有一份支出列表。 这些费用适用于初始可用现金金额。
```kt
val res = expenses.fold(cash) {total, next -> total - next}
......@@ -1037,7 +1037,7 @@ val res = expenses.fold(cash) {total, next -> total - next}
这是我们减去可用金额的所有费用后的余额。
## Kotlin 列表块
## Kotlin 列表
有时,在进行归约时,我们需要使用列表中的更多元素。 我们可以使用`chunked()`方法将列表分成列表列表。
......@@ -1110,7 +1110,7 @@ val (nums2, nums3) = nums.partition { e -> e < 0 }
这是输出。
## 科特林 List group by
## Kotlin 列表分组
`groupBy()`方法通过将给定选择器函数返回的键应用于原始列表的元素进行分组,这些键应用于每个元素。 它返回一个映射,其中每个组键都与对应元素的列表相关联。
......@@ -1163,7 +1163,7 @@ val res2 = words.groupBy { it.length }
这是输出。
## Kotlin 列出任何
## Kotlin 列表`any()`
如果至少一个元素与给定的谓词函数匹配,则`any()`方法返回 true。
......@@ -1196,7 +1196,7 @@ val r2 = nums.any { e -> e < 0 }
在这里,我们检查列表中是否至少包含一个负值。 该方法返回一个布尔值。
## 科特林全部列出
## Kotlin 列表`all()`
如果所有元素都满足给定的谓词功能,则`all()`返回 true。
......@@ -1235,7 +1235,7 @@ val r = nums.all { e -> e > 0 }
在这里,我们测试`nums`列表是否仅包含正值。
## Kotlin 清单下降
## Kotlin 列表删除
通过放置操作,我们从列表中排除了一些元素。
......@@ -1303,7 +1303,7 @@ val nums5 = nums.sorted().dropLastWhile { e -> e > 0 }
这是输出。
## 科特林清单
## Kotlin 列表提取
提取操作是放置操作的补充。 通过选择一些元素,take 方法形成一个新列表。
......
# 科特林地图
# Kotlin 映射
> 原文: [http://zetcode.com/kotlin/maps/](http://zetcode.com/kotlin/maps/)
Kotlin 地图教程显示了如何在 Kotlin 中使用地图。 地图是对象对的集合。
Kotlin 映射教程显示了如何在 Kotlin 中使用映射。 映射是对象对的集合。
Kotlin 区分只读地图和可变地图。 使用`mapOf()`创建只读映射,并使用`mutableMapOf()`创建可变映射。
Kotlin 区分只读映射和可变映射。 使用`mapOf()`创建只读映射,并使用`mutableMapOf()`创建可变映射。
## 科特林地图
## Kotlin 映射
映射是保存成对对象的集合。 每对都包含一个键和一个值。 映射键是唯一的; 该地图的每个键仅包含一个值。
映射是保存成对对象的集合。 每对都包含一个键和一个值。 映射键是唯一的; 该映射的每个键仅包含一个值。
## Kotlin mapOf()
## Kotlin `mapOf()`
`mapOf()`方法创建具有指定内容的只读映射,并以成对的列表的形式给出,其中第一个值为键,第二个为值。
......@@ -30,7 +30,7 @@ fun main() {
```
该示例创建了两个地图
该示例创建了两个映射
```kt
{97=a, 98=b, 120=x}
......@@ -40,7 +40,7 @@ fun main() {
这是输出。
## 科特林哈希地图
## Kotlin 哈希映射
可以从 Java 的`HashMap`创建映射。
......@@ -66,7 +66,7 @@ fun main() {
该示例使用 Java 的`HashMap`创建映射,并将值和对打印到控制台。
## 科特林地图尺寸
## Kotlin 映射大小
映射的大小(对数)可以使用`size`属性和`count()`方法确定。
......@@ -137,7 +137,7 @@ Values:[12, 45, 33]
这是输出。
## Kotlin mutableMapOf
## Kotlin `mutableMapOf`
使用`mutableMapOf()`创建一个可变映射。
......@@ -179,7 +179,7 @@ println(user)
```
新对将添加到地图。 IntelliJ IDEA 建议分配操作。
新对将添加到映射。 IntelliJ IDEA 建议分配操作。
```kt
user.remove("occupation")
......@@ -217,7 +217,7 @@ empty
这是输出。
## Kotlin 获得价
## Kotlin 获
有几种方法可以从 Kotlin 映射中检索值。
......@@ -247,7 +247,7 @@ fun main() {
```
该示例从地图获取值。
该示例从映射获取值。
```kt
// println(items.get("coins"))
......@@ -275,7 +275,7 @@ val nOfPencils = items.getOrElse("pencils", {
## Kotlin 包含键/值
`containsKey()`检查地图是否包含密钥。 `containsValue()`检查映射是否包含值。
`containsKey()`检查映射是否包含密钥。 `containsValue()`检查映射是否包含值。
`KotlinMapContains.kt`
......@@ -307,11 +307,11 @@ fun main() {
```
该示例检查地图是否包含键“ cups”和值 25。
该示例检查映射是否包含键“ cups”和值 25。
## 科特林地图
## Kotlin 映射遍历
使用`forEach()`,我们可以遍历地图
使用`forEach()`,我们可以遍历映射
`KotlinMapForEach.kt`
......@@ -327,7 +327,7 @@ fun main() {
```
该示例使用`forEach()`遍历地图
该示例使用`forEach()`遍历映射
```kt
There are 12 coins
......@@ -339,9 +339,9 @@ There are 2 pens
这是输出。
## Kotlin 过滤器地图
## Kotlin 映射过滤器
我们可以使用`filterKeys()``filterValues()``filter()`过滤地图
我们可以使用`filterKeys()``filterValues()``filter()`过滤映射
`KotlinMapFilter.kt`
......@@ -364,7 +364,7 @@ fun main() {
```
该示例过滤地图
该示例过滤映射
```kt
val filtered = items.filterKeys { it == "A" || it == "C" }
......@@ -396,7 +396,7 @@ val filtered3 = items.filter { it.key == "A" || it.value == 50 }
这是输出。
## 科特林排序的地图
## Kotlin 有序映射
使用`sortedMapOf()`创建排序的映射。
......@@ -416,7 +416,7 @@ fun main() {
```
该示例打印未排序和排序的地图
该示例打印未排序和排序的映射
```kt
{coins=12, books=45, cups=33, pens=2}
......@@ -426,7 +426,7 @@ fun main() {
这些对按键排序。
## 科特林地图任何
## Kotlin 映射`any()`
如果至少一个条目与给定谓词匹配,则`any()`方法返回`true`
......@@ -472,4 +472,4 @@ The map has even value(s)
这是输出。
在本教程中,我们介绍了 Kotlin 地图。 您可能也对相关的 Kotlin 教程感兴趣: [Kotlin 设置教程](/kotlin/sets/)[Kotlin 数组教程](/kotlin/arrays/)或列出[所有 Kotlin 教程](/all/#kotlin)
\ No newline at end of file
在本教程中,我们介绍了 Kotlin 映射。 您可能也对相关的 Kotlin 教程感兴趣: [Kotlin 设置教程](/kotlin/sets/)[Kotlin 数组教程](/kotlin/arrays/)或列出[所有 Kotlin 教程](/all/#kotlin)
\ No newline at end of file
# 科特林套装
# Kotlin 集合
> 原文: [http://zetcode.com/kotlin/sets/](http://zetcode.com/kotlin/sets/)
......@@ -6,7 +6,7 @@ Kotlin 集教程展示了如何在 Kotlin 中使用集。 集合是元素的一
Kotlin 区分只读集和可变集。 用`setOf()`创建只读集,用`mutableSetOf()`设置可变集。
## Kotlin setOf()
## Kotlin `setOf()`
`setOf()`方法在 Kotlin 中创建一个新的只读集。
......@@ -52,7 +52,7 @@ spectacles
这是输出。
## Kotlin Set 基础知识
## Kotlin 集合基础知识
在下一个示例中,我们有一个简单的 Kotlin Set 示例。
......@@ -110,7 +110,7 @@ average: 5.625
这是输出。
## Kotlin 集索引
## Kotlin 集索引
集合中的每个元素都有一个索引。 Kotlin 集索引从零开始。 最后一个元素的索引为`len-1`
......@@ -168,7 +168,7 @@ The last index of cup is 1
这是输出。
## 科特林集数
## Kotlin 集合大小
`count()`方法返回集合中的元素数。
......@@ -233,7 +233,7 @@ There are 5 even values
这是输出。
## Kotlin 设置第一个和最后一个元素
## Kotlin 集合第一个和最后一个元素
我们有方法来获取集合的第一个和最后一个元素。
......@@ -302,7 +302,7 @@ dog
这是输出。
## Kotlin 设置迭代
## Kotlin 集合迭代
Set 迭代或 Set 循环是一个遍历 set 元素的过程。
......@@ -414,7 +414,7 @@ pen cup dog person cement coal spectacles
这是输出。
## Kotlin 集排序
## Kotlin 集排序
以下示例显示如何在 Kotlin 中对 Set 值进行排序。 由于使用`setOf()`创建的集合是只读的,因此这些方法不会更改集合,而是返回新的修改后的列表。
......@@ -526,7 +526,7 @@ Car(name=Mazda, price=6300)
这是输出。
## Kotlin 套装包含
## Kotlin 集合包含
使用`contains()`方法,我们可以检查集合中是否包含指定的元素。
......@@ -576,7 +576,7 @@ The set contains -1 and 1
这是输出。
## Kotlin 可变套装
## Kotlin 可变集合
使用`mutableSetOf()`,我们可以在 Kotlin 中创建可变集合。
......@@ -654,7 +654,7 @@ The set is empty
这是输出。
## 科特林套装工会
## Kotlin 并集
联合操作返回一个集合,其中包含两个集合中的所有不同元素。
......@@ -684,7 +684,7 @@ fun main(args: Array<String>) {
这是输出。
## Kotlin 设定最大值
## Kotlin 集合最大值
以下示例显示如何查找集合的最大值。
......@@ -751,7 +751,7 @@ The max price is 18600 of Mercedes
这是输出。
## Kotlin Set 过滤器
## Kotlin 集合过滤器
过滤是一种操作,只有满足某些条件的元素才能通过。
......@@ -834,7 +834,7 @@ Car(name=Mercedes, price=18600)
这是输出。
## 科特林设置地图
## Kotlin 集合映射
映射操作通过在集合的每个元素上应用转换函数来返回修改后的列表。
......@@ -862,7 +862,7 @@ fun main(args: Array<String>) {
这是示例输出。
## Kotlin 集减少
## Kotlin 集合归约
精简是一种终端操作,可将设置值聚合为单个值。 `reduce()`方法对一个累加器和每个元素(从左到右)应用一个函数,以将其减小为单个值。
......@@ -897,7 +897,7 @@ val sum = nums.reduce { total, next -> total + next }
这是输出。
## Kotlin 套折
## Kotlin 集合折叠
折叠操作类似于缩小操作。 折叠是将设置值聚合为单个值的终端操作。 区别在于折叠从初始值开始。
......@@ -934,7 +934,7 @@ val res = expenses.fold(cash) {total, next -> total - next}
这是我们减去可用金额的所有费用后的余额。
## 科特林套装大
## Kotlin 集合分
有时候,在进行约简时,我们需要处理集合中的更多元素。 我们可以使用`chunked()`方法将集合分成列表列表。
......@@ -970,7 +970,7 @@ val res = nums.chunked(2).fold(0) { total, next -> total + next[0] * next[1] }
这是示例的输出。
## Kotlin 设置分区
## Kotlin 集合分区
分区操作将原始集合拆分为成对的列表。 第一个列表包含其指定谓词产生 true 的元素,而第二个列表包含其谓词产生 false 的元素。
......@@ -1008,7 +1008,7 @@ val (nums2, nums3) = nums.partition { e -> e < 0 }
这是输出。
## Kotlin Set
## Kotlin 集合分
`groupBy()`方法通过给定选择器函数返回的键将原始元素集应用于每个元素。 它返回一个映射,其中每个组键都与对应元素的列表相关联。
......@@ -1061,7 +1061,7 @@ val res2 = words.groupBy { it.length }
这是输出。
## 设置任何
## 集合`any()`
如果至少一个元素与给定的谓词函数匹配,则`any()`方法返回 true。
......@@ -1093,7 +1093,7 @@ val r2 = nums.any { e -> e < 0 }
在这里,我们检查该集合是否包含至少一个负值。 该方法返回一个布尔值。
## 全部设置
## 集合`all()`
如果所有元素都满足给定的谓词功能,则`all()`返回 true。
......@@ -1132,7 +1132,7 @@ val r = nums.all { e -> e > 0 }
在这里,我们测试`nums`集是否仅包含正值。
## 科特林套装放
## Kotlin 集合删除
通过放置操作,我们从集合中排除了一些元素。
......@@ -1189,7 +1189,7 @@ val nums4 = nums.sorted().dropLastWhile { e -> e > 0 }
这是输出。
## 科特林清单
## Kotlin 集合提取
提取操作是放置操作的补充。 take 方法通过选择一些 set 元素形成一个新列表。
......
......@@ -8,7 +8,7 @@ Kotlin 是在 Java 虚拟机上运行的静态类型的编程语言。
Kotlin 由 JetBrains 创建。 Kotlin 是一种面向对象的功能编程语言。 Kotlin 被设计为一种务实,简洁,安全且可互操作的编程语言。
## Kotlin 如果条件
## Kotlin `if`条件
`if`关键字用于创建简单的条件测试。 可以与`else`关键字结合使用。
......@@ -83,7 +83,7 @@ fun main() {
在示例中,我们使用 if else if 来确定两个值是否相等或更大或更小。
## Kotlin if 表达
## Kotlin `if`表达式
Kotlin 的 if 是一个表达式,即它返回一个值。
......@@ -106,7 +106,7 @@ fun main() {
该示例使用`if`表达式返回两个值中的最大值。
## 表达时的科特琳
## `when`表达式
Kotlin 的`when`表达式用于评估多个条件。 它是 Java `switch`语句的更强大版本。
......@@ -134,7 +134,7 @@ fun main() {
在示例中,我们生成一个随机数。 基于随机值,我们将消息打印到控制台。
## Kotlin while 循环
## Kotlin `while`循环
`while`关键字用于创建循环。 它运行直到满足给定条件。
......@@ -167,7 +167,7 @@ while(i < 10) {
只要`i`变量小于 10,就一直在运行`while`条件。
## Kotlin for 循环
## Kotlin `for`循环
使用 Kotlin 的`for`循环,我们可以创建比`while`更容易创建的循环。
......
# Kotlin 写入档案
# Kotlin 写入文件
> 原文: [http://zetcode.com/kotlin/writefile/](http://zetcode.com/kotlin/writefile/)
......@@ -8,7 +8,7 @@ Kotlin 是一种在 Java 虚拟机上运行的静态类型的编程语言。
本教程提供了四个示例,这些示例可以写入 Kotlin 中的文件。
## Kotlin 使用 PrintWriter 写入文件
## Kotlin 使用`PrintWriter`写入文件
`PrintWriter`将格式化的对象表示形式打印到文本输出流。
......@@ -59,7 +59,7 @@ out.println("Second line")
使用`println()`,我们向文件写入一个字符串,其中包括一个换行符。
## Kotlin 使用 BufferedWriter 写入文件
## Kotlin 使用`BufferedWriter`写入文件
`BufferedWriter`将文本写入字符输出流,缓冲字符以更有效地写入单个字符,数组和字符串。
......@@ -95,7 +95,7 @@ myfile.bufferedWriter().use { out ->
`bufferedWriter()`返回用于将内容写入文件的`BufferedWriter``use()`方法在文件上执行给定的块功能,然后将其关闭。
## Kotlin 使用 writeText 写入文件
## Kotlin 使用`writeText`写入文件
`writeText()`是 Kotlin `File`扩展功能,可将使用 UTF-8 或其他字符集编码的文本写入文件。 如果该文件存在,它将被覆盖。
......@@ -122,7 +122,7 @@ fun main(args: Array<String>) {
该示例写入具有 Kotlin `writeText()`扩展功能的文件。
## Kotlin 使用 writeText 写入文件
## Kotlin 使用`writeText`写入文件
`Files.write()`将字节写入文件。
......
# Kotlin 阅读文件教程
# Kotlin 读取文件教程
> 原文: [http://zetcode.com/kotlin/readfile/](http://zetcode.com/kotlin/readfile/)
......@@ -19,7 +19,7 @@ course of three days, during the second Persian invasion of Greece.
在示例中,我们使用此文本文件。
## Kotlin 使用 File.readLines 读取文件
## Kotlin 使用`File.readLines`读取文件
`File.readLines()`读取文件内容为行列表。 不应将其用于大文件。
......@@ -43,7 +43,7 @@ fun main(args: Array<String>) {
该示例使用`File.readLines()`读取文件。
## Kotlin 使用 File.useLines 读取文件
## Kotlin 使用`File.useLines`读取文件
`File.useLines()`读取所有数据作为行列表,并将其提供给回调。 最后关闭读者。
......@@ -90,7 +90,7 @@ myList.forEachIndexed { i, line -> println("${i}: " + line) }
使用`forEachIndexed()`,我们为每行添加一个行号。
## Kotlin 使用 File.readText 读取文件
## Kotlin 使用`File.readText`读取文件
`File.readText()``String`的形式获取此文件的全部内容。 不建议在大文件上使用此方法。
......@@ -114,7 +114,7 @@ fun main(args: Array<String>) {
在示例中,我们将整个文件读入一个字符串并将其打印到控制台。
## Kotlin 使用 InputStream 读取文件
## Kotlin 使用`InputStream`读取文件
`InputStream`是字节的输入流。
......@@ -156,7 +156,7 @@ var content = ins.readBytes().toString(Charset.defaultCharset())
我们使用`readBytes()``InputStream`读取字节,然后使用`toString()`将字节转换为文本。
## Kotlin 使用 readBytes 读取文件
## Kotlin 使用`readBytes`读取文件
`readBytes()`以字节数组的形式读取文件的全部内容。 不建议在大文件上使用。
......
......@@ -40,7 +40,7 @@ Regex.fromLiteral("book")
| `\s` | 匹配空白字符。 |
| `\w` | 匹配单词字符; 等同于`[a-zA-Z_0-9]` |
## Kotlin 匹配并包含 containsMatchIn 方法
## Kotlin `containsMatchIn`方法
如果正则表达式与整个输入字符串匹配,则`matches()`方法返回 true。 `containsMatchIn()`方法指示正则表达式是否可以在指定的输入中找到至少一个匹配项。
......@@ -125,7 +125,7 @@ book matches
对于`containsMatchIn()`方法,如果“ book”单词在单词中某处,则模式匹配; 对于`matches()`,输入字符串必须完全匹配模式。
## Kotlin 查找方法
## Kotlin `find()方法
`find()`方法返回输入中正则表达式的第一个匹配项,从指定的起始索引开始。 起始索引默认为 0。
......@@ -187,7 +187,7 @@ fox found at indexes: 29..31
这是输出。
## Kotlin findAll 方法
## Kotlin `findAll`方法
`findAll()`方法返回输入字符串中所有出现的正则表达式的序列。
......@@ -215,7 +215,7 @@ fun main(args : Array<String>) {
在示例中,我们使用`findAll()`查找所有出现的'fox'术语。
## Kotlin 分割功能
## Kotlin `split()`方法
`split()`方法将输入字符串拆分为正则表达式的匹配项。
......@@ -375,9 +375,9 @@ even matches
这是输出。
## {n,m}量词
## `{n,m}`量词
{n,m}量词至少匹配前一个表达式的 n 个,最多匹配 m 个。
`{n,m}`量词至少匹配前一个表达式的 n 个,最多匹配 m 个。
`KotlinRegexMnQuantifier.kt`
......@@ -494,7 +494,7 @@ val pattern = "Jane|Beky|Robert".toRegex()
此正则表达式查找“​​ Jane”,“ Beky”或“ Robert”字符串。
## 子图案
## 子模式
子模式是模式中的模式。 子模式使用()字符创建。
......@@ -547,7 +547,7 @@ bookmark matches
这是输出。
## 角色
## 字符
字符类定义了一组字符,任何字符都可以出现在输入字符串中以使匹配成功。
......@@ -582,7 +582,7 @@ val pattern = "gr[ea]y".toRegex()
`[ea]`类允许在模式中使用'e'或'a'字符。
## 命名角色
## 命名字符
有一些预定义的字符类。 `\s`与空白字符`[\t\n\t\f\v]`匹配,`\d`与数字`[0-9]`匹配,`\w`与单词字符`[a-zA-Z0-9_]`匹配。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册