提交 ca6a5d14 编写于 作者: W wizardforcel

2020-07-07 23:21:29

上级 c5c921cb
......@@ -38,7 +38,7 @@ Tue Aug 08 10:20:56 NPT 2017 + Tue Aug 08 10:20:56 NPT 2017 = Mon Apr 16 20:41:5
在上述程序中,`c1``c2`存储当前日期。 然后,我们只需克隆`c1`,然后依次添加`c2`的每个`DateTime`属性。
如您所见,我们在月份中增加了 1。 这是因为,科特林的月份从 0 开始。
如您所见,我们在月份中增加了 1。 这是因为,Kotlin 的月份从 0 开始。
* * *
......
......@@ -160,7 +160,7 @@ fun main(args: Array<String>) {
* * *
## Kotlin 如果表达式嵌套
## Kotlin 嵌套`if`表达式
一个`if`表达式可以位于另一个`if`表达式的嵌套块内。
......
# Kotlin 程序:将数组转换为`Set`(`HashSet`),反之亦然
# Kotlin 程序:将数组转换为(`HashSet`),反之亦然
> 原文: [https://www.programiz.com/kotlin-programming/examples/convert-array-set](https://www.programiz.com/kotlin-programming/examples/convert-array-set)
#### 在此程序中,您将学习在 Kotlin 中将数组转换为集合,反之亦然。
## 示例 1:将数组转换为集
## 示例 1:将数组转换为集
```kt
import java.util.*
......
# Kotlin 程序:将栈跟踪转换为字符串
# Kotlin 程序:将栈跟踪转换为字符串
> 原文: [https://www.programiz.com/kotlin-programming/examples/convert-stack-trace-string](https://www.programiz.com/kotlin-programming/examples/convert-stack-trace-string)
#### 在此程序中,您将学习在 Kotlin 中将栈跟踪转换为字符串。
#### 在此程序中,您将学习在 Kotlin 中将栈跟踪转换为字符串。
## 示例:将栈跟踪转换为字符串
## 示例:将栈跟踪转换为字符串
```kt
import java.io.PrintWriter
......@@ -33,8 +33,8 @@ java.lang.ArithmeticException: / by zero
在上面的程序中,我们通过将 0 除以 0 来强制程序抛出`ArithmeticException`
`catch`块中,我们使用`StringWriter``PrintWriter`将任何给定的输出打印到字符串中。 然后,使用异常的`printStackTrace()`方法打印栈跟踪,并将其写入编写器。
`catch`块中,我们使用`StringWriter``PrintWriter`将任何给定的输出打印到字符串中。 然后,使用异常的`printStackTrace()`方法打印栈跟踪,并将其写入编写器。
然后,我们只需使用`toString()`方法将其转换为字符串。
这是等效的 Java 代码:[将堆栈跟踪转换为字符串的 Java 程序](/java-programming/examples/convert-stack-trace-string "Java program to convert a stack trace to a string")
\ No newline at end of file
这是等效的 Java 代码:[将栈跟踪转换为字符串的 Java 程序](/java-programming/examples/convert-stack-trace-string "Java program to convert a stack trace to a string")
\ No newline at end of file
......@@ -2,11 +2,11 @@
> 原文: [https://www.programiz.com/kotlin-programming/when-expression](https://www.programiz.com/kotlin-programming/when-expression)
#### 在本文中,您将借助各种示例来了解在 Kotlin 中的`when`构造
#### 在本文中,您将借助各种示例来了解在 Kotlin 中的`when`结构
## Kotlin `when`构造
## Kotlin `when`结构
可以认为 Kotlin 中的`when`构造[Java `switch`语句](/java-programming/hello-world)的替代。 它求值许多替代方案中的一段代码。
可以认为 Kotlin 中的`when`结构[Java `switch`语句](/java-programming/hello-world)的替代。 它求值许多替代方案中的一段代码。
* * *
......@@ -82,7 +82,7 @@ Enter operator either +, -, * or /
* * *
## 可能性很小
## 很小的可能性
**将两个或多个分支条件与逗号组合。** 例如,
......
......@@ -14,7 +14,7 @@
* * *
## Kotlin while Loop
## Kotlin `while`循环
`while`循环的语法为:
......
......@@ -28,7 +28,7 @@ for (...) {
* * *
### 例:Kotlin `break`
### 例:Kotlin `break`
```kt
fun main(args: Array<String>) {
......@@ -99,15 +99,15 @@ sum = 13
* * *
## Kotlin 标记的休息
## Kotlin 带标签形式
到目前为止,您所学到的是`break`的未标记形式,它终止了最近的封闭循环。 还有另一种方式可以使用`break`(标记形式)终止所需的循环(可以是外部循环)。
* * *
### 标记的中断如何工作?
### 带标签的`break`如何工作?
### ![Kotlin Labeled break](img/3a94e754a9aa1b9e521cb123e607b041.png)
![Kotlin Labeled break](img/3a94e754a9aa1b9e521cb123e607b041.png)
Kotlin 中的标签以[标识符](/kotlin-programming/keywords-identifiers#identifiers "Kotlin identifier")开头,后跟`@`
......
......@@ -10,9 +10,9 @@
* * *
## 继续如何进行
## `continue`如何工作
如果...其他构造,它几乎总是与[一起使用。 例如,](/kotlin-programming/if-expression "Kotlin if...else")
它几乎总是与[`if...else`](/kotlin-programming/if-expression "Kotlin if...else")一起使用。例如,
```kt
while (testExpression1) {
......@@ -131,7 +131,7 @@ Kotlin 中的标签以[标识符](https://www.programiz.com/kotlin-programming/k
* * *
### 示例:标记为继续
### 示例:带标签的`continue`
```kt
fun main(args: Array<String>) {
......
......@@ -92,7 +92,7 @@ callme()
* * *
### 示例:简单函数程序
### 示例:简单函数程序
```kt
fun callMe() {
......
......@@ -49,7 +49,7 @@ result = false
* * *
### 示例:带缀符号的用户定义函数
### 示例:带缀符号的用户定义函数
```kt
class Structure() {
......
......@@ -111,7 +111,7 @@ fun main(args: Array<String>) {
* * *
### 示例:科特林命名参数
### 示例:Kotlin 命名参数
```kt
fun displayBorder(character: Char = '=', length: Int = 15) {
......
......@@ -91,7 +91,7 @@ factorial(4) // 1st function call. Argument: 4
在普通递归中,首先执行所有递归调用,最后从返回值计算结果(如上例所示)。 因此,在进行所有递归调用之前,您不会得到结果。
在尾部递归中,首先执行计算,然后执行递归调用(递归调用将当前步骤的结果传递到下一个递归调用)。 这使得递归调用等效于循环,并避免了栈溢出的风险。
在尾部递归中,首先执行计算,然后执行递归调用(递归调用将当前步骤的结果传递到下一个递归调用)。 这使得递归调用等效于循环,并避免了栈溢出的风险。
* * *
......
......@@ -64,7 +64,7 @@ Age = 25
* * *
### 主构造器和初始化
### 主构造器和初始化块
主构造器的语法受约束,不能包含任何代码。
......
......@@ -15,7 +15,7 @@
* * *
## 为什么继承?
## 为什么继承?
假设在您的应用程序中,您需要三个字符-一个**数学老师**,一个**足球运动员**和一个**商人**
......@@ -121,7 +121,7 @@ I play for LA Galaxy.
这里,从`Person`类派生两个类`MathTeacher``Footballer`
`Person`类的主要构造器声明了两个属性:`age``name`,并且它具有一个初始化块。 基类`Person`的初始化块(和成员函数)可以由派生类(`MathTeacher``Footballer`)的对象访问。
`Person`类的主要构造器声明了两个属性:`age``name`,并且它具有一个初始化块。 基类`Person`的初始化块(和成员函数)可以由派生类(`MathTeacher``Footballer`)的对象访问。
派生类`MathTeacher``Footballer`分别具有自己的成员函数`teachMaths()``playFootball()`。 这些功能只能从其各自类别的对象中访问。
......@@ -204,13 +204,13 @@ val t1 = MathTeacher(25, "Jack")
* * *
## 覆盖成员的功能和属性
## 覆盖成员的函数和属性
如果基类和派生类包含名称相同的成员函数(或属性),则可能需要使用`override`关键字覆盖派生类的成员函数,并使用`open`关键字作为 基类。
* * *
## 示例:重写成员函数
## 示例:覆盖成员函数
```kt
// Empty primary constructor
......
......@@ -10,7 +10,7 @@
* * *
## 封装内的可见性修饰符
## 内的可见性修饰符
程序包组织了一组相关的函数,属性和类,对象和接口。 **推荐阅读***Kotlin 包*
......@@ -58,7 +58,7 @@ private class class1 {} // visible inside hello.kt
| protected | 在类及其子类中可见 |
| internal | 对于模块内可以看到声明类的任何客户端可见 |
**注意**:如果在派生类中重写`protected`成员而未指定其可见性,则其可见性也将为`protected`
**注意**:如果在派生类中覆盖`protected`成员而未指定其可见性,则其可见性也将为`protected`
Let's take an example:
......@@ -94,7 +94,7 @@ fun main(args: Array<String>) {
* * *
## 更改构造方法的可见性
## 更改构造的可见性
默认情况下,构造器的可见性为`public`。 但是,您可以更改它。 为此,您需要显式添加`constructor`关键字。
......
......@@ -25,7 +25,7 @@ abstract class Person {
* 创建一个抽象类`Person`。 您不能创建该类的对象。
* 该类具有非抽象属性`age`和非抽象方法`displaySSN()`。 如果您需要在子类中覆盖这些成员,则应使用`open`关键字标记它们。
* 该类具有抽象方法`displayJob()`。 它没有任何实现,必须在其子类中重写
* 该类具有抽象方法`displayJob()`。 它没有任何实现,必须在其子类中覆盖
**注意**:抽象类始终处于打开状态。 您不需要显式使用`open`关键字从它们继承子类。
......@@ -73,7 +73,7 @@ My SSN is 23123.
实例化了`Teacher`类的对象`jack`。 在创建时,我们已将`"Jack Smith"`作为参数传递给主构造器。 这将执行`Person`类的初始化块。
然后,使用`jack`对象调用`displayJob()`方法。 请注意,`displayJob()`方法在基类中被声明为抽象,而在派生类中被重写
然后,使用`jack`对象调用`displayJob()`方法。 请注意,`displayJob()`方法在基类中被声明为抽象,而在派生类中被覆盖
最后,使用`jack`对象调用`displaySSN()`方法。 该方法是非抽象的,并且在`Person`类中声明(并且不在`Teacher`类中声明)。
......
......@@ -65,7 +65,7 @@ class InterfaceImp : MyInterface {
在这里,类`InterfaceImp`实现了`MyInterface`接口。
该类重写接口的抽象成员(`test`属性和`foo()`方法)。
该类覆盖接口的抽象成员(`test`属性和`foo()`方法)。
* * *
......
......@@ -88,7 +88,7 @@ fun main(args: Array<String>) {
* * *
### 例:Kotlin 内部类
### 例:Kotlin 内部类
```kt
class Outer {
......
......@@ -19,7 +19,7 @@ data class Person(val name: String, var age: Int)
* * *
## Kotlin 数据类要求
## Kotlin 数据类要求
要求如下:
......@@ -57,7 +57,7 @@ age = 29
* * *
### 正在复制
### `copy`
对于数据类,可以使用`copy()`函数创建一个对象的副本,该对象的某些属性有所不同。 运作方式如下:
......@@ -147,7 +147,7 @@ u1 is not equal to u3.
* * *
### 销毁声明
### 解构声明
您可以使用[解构声明](https://kotlinlang.org/docs/reference/multi-declarations.html "Kotlin Destructing Declaration")将对象分解为多个变量。 例如:
......
......@@ -92,7 +92,7 @@ window.addMouseListener(object : MouseAdapter() {
(该示例摘自 [Kotlin 官方文档页面](https://kotlinlang.org/docs/reference/object-declarations.html)。)
在此,声明了扩展`MouseAdapter`类的匿名对象。该程序重写`mouseClicked()``mouseEntered()`这两个`MouseAdapter`方法。
在此,声明了扩展`MouseAdapter`类的匿名对象。该程序覆盖`mouseClicked()``mouseEntered()`这两个`MouseAdapter`方法。
如有必要,可以为匿名对象分配名称,并将其存储在变量中。 例如,
......
......@@ -26,7 +26,7 @@ fun main(args: Array<String>) {
* * *
### 示例:同伴对象
### 示例:伴随对象
```kt
class Person {
......
......@@ -41,7 +41,7 @@ operator fun String?.plus(other: Any?): String
您还可以通过重载对象的相应功能来定义操作符对对象的工作方式。 例如,您需要通过重载`plus()`函数来定义`+`运算符对对象的工作方式。
### 示例:重载+运算符
### 示例:重载`+`运算符
```kt
fun main(args: Array<String>) {
......@@ -75,7 +75,7 @@ sum = (5, 1)
* * *
### 示例:-运算符重载
### 示例:重载`-`运算符
在此示例中,您将学习重载`--`运算符。 表达式`--a`在引擎盖下转换为`a.dec()`
......
......@@ -107,26 +107,26 @@ Kotlin 中的内置类型可以分类为:
* 布尔值
* 数组
### 编号类型
### 数字类型
* * *
Kotlin 中的数字类似于 Java。 有 6 种内置类型代表数字。
* 字节
*
* 整数
* Long
* 浮动
*
* `Byte`
* `Short`
* `Int`
* `Long`
* `Float`
* `Double`
#### 1.字节
#### 1.`Byte`
* * *
* `Byte`数据类型的值可以从 -128 到 127(8 位带符号二进制补码整数)。
* 如果可以确定某个变量的值在`[-128, 127]`之内,则可以使用它代替`Int`或其他整数数据类型来节省内存
* 例:
* 例:
```kt
fun main(args : Array<String>) {
......@@ -144,7 +144,7 @@ Kotlin 中的数字类似于 Java。 有 6 种内置类型代表数字。
112
```
#### 2.短路
#### 2.`Short`
* * *
......@@ -166,7 +166,7 @@ When you run the program, the output will be:
-11245
```
#### 3.整数
#### 3.`Int`
* * *
......@@ -187,7 +187,7 @@ When you run the program, the output will be:
100000
```
如果您在`-2<sup>31</sup>``2<sup>31</sup>-1`之间分配一个整数而未明确指定其类型,则该变量将为`Int`类型。 例如,
如果您在`-2^31``2^31-1`之间分配一个整数而未明确指定其类型,则该变量将为`Int`类型。 例如,
```kt
fun main(args : Array<String>) {
......@@ -202,7 +202,7 @@ fun main(args : Array<String>) {
如果使用的是 IntelliJ IDEA,则可以将光标放在变量内,然后按`Ctrl + Shift + P`查看其类型。
![View type of a variable in IntelliJ IDEA](img/fa6e135420e263a4620fb5c00a8e847a.png)
#### 4.
#### 4.`Long`
* * *
......@@ -223,7 +223,7 @@ When you run the program, the output will be:
9999
```
如果为变量分配一个大于`2<sup>31</sup>-1`或小于`-2<sup>31</sup>`的整数值(未明确指定其类型),则该变量将为`Long`类型。 例如,
如果为变量分配一个大于`2^31-1`或小于`-2^31`的整数值(未明确指定其类型),则该变量将为`Long`类型。 例如,
```kt
val distance = 10000000000 // distance variable of type Long
......@@ -236,7 +236,7 @@ val distance = 10000000000 // distance variable of type Long
val distance = 100L // distance value of type Long
```
#### 5.
#### 5.`Double`
* * *
......@@ -259,7 +259,7 @@ When you run the program, the output will be:
999.5
```
#### 浮动
#### `Float`
* * *
......@@ -319,7 +319,7 @@ When you run the program, the output will be:
* * *
#### 字符
#### `Char`
为了表示 Kotlin 中的字符,使用了`Char`类型。
......@@ -356,7 +356,7 @@ var letter: Char = 65 // Error
* * *
#### 布尔值
#### `Boolean`
* `Boolean`数据类型有两个可能的值,即`true``false`
* 例:
......@@ -383,7 +383,7 @@ fun main(args : Array<String>) {
* * *
## 科特林弦
## Kotlin 字符串
在 Kotlin 中,字符串由`String`类表示。 诸如`"This is a string."`之类的字符串文字被实现为此类的实例。
......
......@@ -310,7 +310,7 @@ true
* * *
## 6\. in 运算符
## 6\. `in`运算符
`in`运算符用于检查对象是否属于集合。
......@@ -321,7 +321,7 @@ true
* * *
### 示例:在运算符中
### 示例:`in`运算符
```kt
fun main(args: Array<String>) {
......
......@@ -36,7 +36,7 @@ fun main(args: Array<String>) {
您可以使用*范围*代替比较来解决此问题。
## 示例 2:Kotlin 程序使用是否包含范围来检查字母
## 示例 2:使用`if else`和范围来检查字母
```kt
fun main(args: Array<String>) {
......
......@@ -12,7 +12,7 @@
1 + 2 + 3 + ... + n
```
## 示例 1:使用`for`循环的自然数之和
## 示例 1:`for`循环和自然数之和
```kt
fun main(args: Array<String>) {
......@@ -45,7 +45,7 @@ Sum = 5050
您还可以使用`while`循环解决此问题,如下所示:
## 示例 2:使用`while`循环的自然数之和
## 示例 2:`while`循环和自然数之和
```kt
fun main(args: Array<String>) {
......
......@@ -78,7 +78,7 @@ fun main(args: Array<String>) {
* * *
## 示例 3:显示最给定数字(而不是项)的斐波那契数列
## 示例 3:显示最大为给定数字(而不是项)的斐波那契数列
```kt
fun main(args: Array<String>) {
......
......@@ -15,7 +15,7 @@ long number2 = number1; // Valid code
在这里,类型为`int``number1`的值会自动转换为类型`long`,并分配给变量`number2`
科特林
Kotlin 中
```kt
val number1: Int = 55
......
......@@ -6,7 +6,7 @@
两个整数的 LCM 是可以被两个数字完全除(没有余数)的最小正整数。
## 示例 1:Kotlin 程序使用`while`循环和`if`语句计算 LCM
## 示例 1:使用`while`循环和`if`语句计算 LCM
```kt
fun main(args: Array<String>) {
......@@ -56,7 +56,7 @@ LCM = (n1 * n2) / GCD
如果您不知道如何用 Java 计算 GCD,请检查 [Kotlin 程序以找到两个数字](/kotlin-programming/examples/hcf-gcd "How to find GCD of two numbers in Kotlin?")的 GCD。
## 示例 2:使用 GCD 计算 LCM 的 Kotlin 程序
## 示例 2:使用 GCD 计算 LCM
```kt
fun main(args: Array<String>) {
......
# Kotlin 程序:使用循环从 A 到 Z 显示字符
# Kotlin 程序:使用循环显示从 A 到 Z 的字符
> 原文: [https://www.programiz.com/kotlin-programming/examples/display-alphabets](https://www.programiz.com/kotlin-programming/examples/display-alphabets)
......
......@@ -38,7 +38,7 @@ fun main(args: Array<String>) {
* * *
## Kotlin 声明
## Kotlin 语句
语句是构成完整执行单元的所有内容。 例如,
......
# Kotlin 程序:显示数字因
# Kotlin 程序:显示数字因
> 原文: [https://www.programiz.com/kotlin-programming/examples/factors-number](https://www.programiz.com/kotlin-programming/examples/factors-number)
#### 在此程序中,您将学习在 Kotlin 中使用`for`循环显示给定数字的所有因
#### 在此程序中,您将学习在 Kotlin 中使用`for`循环显示给定数字的所有因
## 示例:正整数的因
## 示例:正整数的因
```kt
fun main(args: Array<String>) {
......@@ -29,4 +29,4 @@ Factors of 60 are: 1 2 3 4 5 6 10 12 15 20 30 60
`for`循环从 1 迭代到`num`。 在每次迭代中,检查`num`是否可被`i`完全整除(`i``num`的因数)和`i`的值增加 1。
以下是等效的 Java 代码:[显示数字因子的 Java 程序](/java-programming/examples/factors-number "Java Program to Display Factors of a Number")
\ No newline at end of file
以下是等效的 Java 代码:[显示数字因数的 Java 程序](/java-programming/examples/factors-number "Java Program to Display Factors of a Number")
\ No newline at end of file
......@@ -8,7 +8,7 @@
如果传递给函数的数字是[质数](/kotlin-programming/examples/prime-number "Check prime number in Kotlin programming"),则`checkPrime()`返回 1。
## 示例:整数作为两个质数之和
## 示例:作为两个质数之和的整数
```kt
fun main(args: Array<String>) {
......
......@@ -41,7 +41,7 @@ fun convertBinaryToDecimal(num: Long): Int {
访问此页面以了解[如何将十进制数转换为二进制](http://www.wikihow.com/Convert-from-Decimal-to-Binary "Binary number to Decimal")
## 示例 2:将数转换为二进制的程序
## 示例 2:将十进制数转换为二进制的程序
我们可以使用`Integer.toBinaryString()`方法将十进制数转换为二进制数。
......
......@@ -31,7 +31,7 @@ fun main(args: Array<String>) {
* * *
## 行尾注释//
## 行尾注释`//`
编译器忽略从`//`到行尾的所有内容。 例如,
......
# Kotlin 程序:使用多维数组乘以矩阵
# Kotlin 程序:使用多维数组相乘矩阵
> 原文: [https://www.programiz.com/kotlin-programming/examples/multiply-matrix](https://www.programiz.com/kotlin-programming/examples/multiply-matrix)
......
......@@ -96,7 +96,7 @@ score = 12.3
* * *
### 示例 3:用户输入的打印字符串
### 示例 3:打印用户输入的字符串
```kt
fun main(args: Array<String>) {
......
# Kotlin 程序:按字典顺序(字典顺序)对元素进行排序
# Kotlin 程序:按字典顺序对元素进行排序
> 原文: [https://www.programiz.com/kotlin-programming/examples/lexicographical-order-words](https://www.programiz.com/kotlin-programming/examples/lexicographical-order-words)
......
......@@ -16,7 +16,7 @@
* * *
## 程序使用*,数字和字符打印三角形
## 使用*,数字和字符打印三角形的程序
* * *
......@@ -102,11 +102,11 @@ fun main(args: Array<String>) {
}
```
## 程序使用*和数字打印倒半金字塔
## 使用*和数字打印倒置半金字塔的程序
* * *
### 示例 4:使用`*`倒置半金字塔
### 示例 4:使用`*`打印倒置半金字塔
```kt
* * * * *
......@@ -133,7 +133,7 @@ fun main(args: Array<String>) {
* * *
### 示例 5:使用数字的倒半金字塔
### 示例 5:使用数字打印倒置半金字塔
```kt
1 2 3 4 5
......@@ -158,7 +158,7 @@ fun main(args: Array<String>) {
}
```
## 程序使用*和数字显示金字塔和倒金字塔
## 使用*和数字显示金字塔和倒置金字塔的程序
* * *
......@@ -244,7 +244,7 @@ fun main(args: Array<String>) {
* * *
### 示例 8:使用`*`倒置完整金字塔
### 示例 8:使用`*`打印倒置完整金字塔
```kt
* * * * * * * * *
......
......@@ -68,7 +68,7 @@
+ [Kotlin 程序:显示两个间隔之间的阿姆斯特朗数](69.md)
+ [Kotlin 程序:使用函数显示间隔之间的质数](70.md)
+ [Kotlin 程序:使用函数显示间隔之间的阿姆斯特朗数](71.md)
+ [Kotlin 程序:显示数字因](72.md)
+ [Kotlin 程序:显示数字因](72.md)
+ [Kotlin 程序:使用`switch...case`制作一个简单的计算器](73.md)
+ [Kotlin 程序:检查一个数字是否可以表示为两个质数之和](74.md)
+ [Kotlin 程序:使用递归找到自然数之和](75.md)
......@@ -108,7 +108,7 @@
+ [Kotlin 程序:将字节数组转换为十六进制](112.md)
+ [Kotlin 程序:从文件内容创建字符串](113.md)
+ [Kotlin 程序:将文本附加到现有文件](114.md)
+ [Kotlin 程序:将栈跟踪转换为字符串](115.md)
+ [Kotlin 程序:将栈跟踪转换为字符串](115.md)
+ [Kotlin 程序:将文件转换为字节数组,反之亦然](116.md)
+ [Kotlin 程序:将`InputStream`转换为字符串](117.md)
+ [Kotlin 程序:将`OutputStream`转换为字符串](118.md)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册