提交 aefb999a 编写于 作者: W wizardforcel

2020-07-11 11:41:59

上级 895fd21d
......@@ -8,7 +8,7 @@
当您使用`||``&&`操作时,编译器分别查找[](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/or.html "Kotlin or function")[](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/and.html "Kotlin and function")函数,并在后台进行调用。
这两个功能支持中缀表示法。
这两个函数支持中缀表示法。
* * *
......@@ -35,7 +35,7 @@ result = true
result = false
```
在上述程序中,使用`a or b`代替`a.or(b)`,并使用`a and b`代替`a.and(b)`。 这是可能的,因为这两个功能都支持中缀表示法。
在上述程序中,使用`a or b`代替`a.or(b)`,并使用`a and b`代替`a.and(b)`。 这是可能的,因为这两个函数都支持中缀表示法。
* * *
......
......@@ -6,7 +6,7 @@
Kotlin 支持函数和面向对象的编程。
Kotlin 支持诸如*高阶函数**函数类型**lambda* 之类的功能,这使其成为功能编程风格的理想选择。 您将在后面的章节中了解这些概念。 本文将重点介绍 Kotlin 中的面向对象的编程风格。
Kotlin 支持诸如*高阶函数**函数类型**lambda* 之类的功能,这使其成为函数编程风格的理想选择。 您将在后面的章节中了解这些概念。 本文将重点介绍 Kotlin 中的面向对象的编程风格。
* * *
......
......@@ -35,7 +35,7 @@
使用继承,现在您不必为每个类的`walk()``talk()``eat()`实现相同的代码。 您只需要**继承它们**
因此,对于`MathTeacher`(派生类),您可以继承`Person`(基类)的所有功能并添加新函数`teachMath()`。 同样,对于`Footballer`类,您可以继承`Person`类的所有功能,并添加新函数`playFootball()`,依此类推。
因此,对于`MathTeacher`(派生类),您可以继承`Person`(基类)的所有函数并添加新函数`teachMath()`。 同样,对于`Footballer`类,您可以继承`Person`类的所有函数,并添加新函数`playFootball()`,依此类推。
这使您的代码更简洁,易于理解和可扩展。
......@@ -123,7 +123,7 @@ I play for LA Galaxy.
`Person`类的主要构造器声明了两个属性:`age``name`,并且它具有一个初始化块。 基类`Person`的初始化块(和成员函数)可以由派生类(`MathTeacher``Footballer`)的对象访问。
派生类`MathTeacher``Footballer`分别具有自己的成员函数`teachMaths()``playFootball()`。 这些功能只能从其各自类别的对象中访问。
派生类`MathTeacher``Footballer`分别具有自己的成员函数`teachMaths()``playFootball()`。 这些函数只能从其各自类别的对象中访问。
* * *
......
......@@ -2,7 +2,7 @@
> 原文: [https://www.programiz.com/kotlin-programming/data-class](https://www.programiz.com/kotlin-programming/data-class)
#### 在本文中,您将学习在 Kotlin 中创建数据类。 您还将了解数据类必须满足的要求及其标准功能
#### 在本文中,您将学习在 Kotlin 中创建数据类。 您还将了解数据类必须满足的要求及其标准函数
可能会出现一种情况,您需要创建一个仅用于保存数据的类。 在这种情况下,您可以将类别标记为`data`以创建数据类别。 例如,
......@@ -15,7 +15,7 @@ data class Person(val name: String, var age: Int)
* 主要构造器的`copy()`函数,`equals()``hashCode()`对以及`toString()`形式
* `componentN()`函数
在详细讨论这些功能之前,让我们讨论数据类必须满足的要求。
在详细讨论这些函数之前,让我们讨论数据类必须满足的要求。
* * *
......@@ -53,7 +53,7 @@ age = 29
声明数据类时,编译器会在后台自动生成一些函数,例如`toString()``equals()``hashcode()`等。 这有助于使代码简洁。 如果您使用过 Java,则需要编写很多样板代码。
让我们使用以下功能
让我们使用以下函数
* * *
......
......@@ -2,13 +2,13 @@
> 原文: [https://www.programiz.com/kotlin-programming/extension-functions](https://www.programiz.com/kotlin-programming/extension-functions)
#### 在本文中,您将学习使用扩展函数使用新功能扩展类。
#### 在本文中,您将学习使用扩展函数使用新函数扩展类。
假设您需要扩展具有新功能的类。 在大多数编程语言中,您可以[派生新的类](/kotlin-programming/inheritance "Kotlin Inheritance")或使用某种设计模式来执行此操作。
假设您需要扩展具有新函数的类。 在大多数编程语言中,您可以[派生新的类](/kotlin-programming/inheritance "Kotlin Inheritance")或使用某种设计模式来执行此操作。
但是,在 Koltin 中,您还可以使用扩展功能来扩展具有新功能的类。 基本上,扩展函数是在类外部定义的类的成员函数。
但是,在 Koltin 中,您还可以使用扩展函数来扩展具有新函数的类。 基本上,扩展函数是在类外部定义的类的成员函数。
例如,您需要对[字符串类](/kotlin-programming/string "Kotlin String Class")使用一个方法,该方法返回删除了第一个和最后一个字符的新字符串。`String`类中尚未提供此方法。 您可以使用扩展功能来完成此任务。
例如,您需要对[字符串类](/kotlin-programming/string "Kotlin String Class")使用一个方法,该方法返回删除了第一个和最后一个字符的新字符串。`String`类中尚未提供此方法。 您可以使用扩展函数来完成此任务。
* * *
......@@ -32,15 +32,15 @@ First character is: ello Everyon
在这里,扩展函数`removeFirstLastChar()`被添加到`String`类。
类名是接收者类型(在我们的示例中为`String`类)。 扩展功能内的`this`关键字引用接收者对象。
类名是接收者类型(在我们的示例中为`String`类)。 扩展函数内的`this`关键字引用接收者对象。
![Kotlin extension function receiver type and obejct](img/9ac79f8f4dedb0fcb09ed7f03c63183c.png)
* * *
如果需要将 Kotlin 集成到 Java 项目的顶部,则无需将整个代码修改为 Koltin。 只需使用扩展功能即可添加函数。
如果需要将 Kotlin 集成到 Java 项目的顶部,则无需将整个代码修改为 Koltin。 只需使用扩展函数即可添加函数。
话虽如此,很容易滥用扩展功能的力量。 我们建议您检查这些资源,以了解何时使用扩展程序以及何时不使用扩展程序:
话虽如此,很容易滥用扩展函数的力量。 我们建议您检查这些资源,以了解何时使用扩展程序以及何时不使用扩展程序:
* [扩展方法和扩展属性是否不好?](https://stackoverflow.com/questions/40598131/are-extension-methods-and-extension-properties-are-bad-practice)
* [如何滥用 Kotlin 扩展功能?](https://www.philosophicalhacker.com/post/how-to-abuse-kotlin-extension-functions/)
\ No newline at end of file
* [如何滥用 Kotlin 扩展函数?](https://www.philosophicalhacker.com/post/how-to-abuse-kotlin-extension-functions/)
\ No newline at end of file
......@@ -39,7 +39,7 @@ operator fun String?.plus(other: Any?): String
* * *
您还可以通过重载对象的相应功能来定义操作符对对象的工作方式。 例如,您需要通过重载`plus()`函数来定义`+`运算符对对象的工作方式。
您还可以通过重载对象的相应函数来定义操作符对对象的工作方式。 例如,您需要通过重载`plus()`函数来定义`+`运算符对对象的工作方式。
### 示例:重载`+`运算符
......
......@@ -135,7 +135,7 @@ val age = 5
在此,使用`=`运算符将 5 分配给变量`age`
以下是所有赋值运算符及其对应功能的列表:
以下是所有赋值运算符及其对应函数的列表:
| 表达式 | 相当于 | 转化为 |
| --- | --- | --- |
......@@ -170,7 +170,7 @@ number = 60
## 3.一元前缀和递增/递减运算符
这是一元运算符,它们的含义和相应功能的表:
这是一元运算符,它们的含义和相应函数的表:
| 运算符 | 含义 | 表达式 | 转换为 |
| --- | --- | --- | --- |
......@@ -271,7 +271,7 @@ max = 12
Kotlin 中有两个逻辑运算符:`||``&&`
这是逻辑运算符,它们的含义和相应功能的表。
这是逻辑运算符,它们的含义和相应函数的表。
| 运算符 | 描述 | 表达式 | 对应函数 |
| --- | --- | --- | --- |
......@@ -346,7 +346,7 @@ numbers array contains 4.
## 7.索引访问运算符
以下是在 Kotlin 中使用带有索引访问运算符和相应功能的一些表达式。
以下是在 Kotlin 中使用带有索引访问运算符和相应函数的一些表达式。
| 表达式 | 转换为 |
| --- | --- |
......@@ -385,7 +385,7 @@ fun main(args: Array<String>) {
## 8.调用运算符
以下是在 Kotlin 中使用带有相应功能的 invoke 操作符的一些表达式。
以下是在 Kotlin 中使用带有相应函数的调用操作符的一些表达式。
| 表达式 | 转换为 |
| --- | --- |
......
......@@ -49,7 +49,7 @@ val number2: Long = number1.toLong()
### 从较大类型转换为较小类型
上面提到的功能可以在两个方向上使用(从较大类型到较小类型的转换以及从较小类型到较大类型的转换)。
上面提到的函数可以在两个方向上使用(从较大类型到较小类型的转换以及从较小类型到较大类型的转换)。
但是,从较大的类型转换为较小的类型可能会截断该值。 例如,
......
......@@ -4,7 +4,7 @@
#### 在此程序中,您将学习使用 Kotlin 中的函数显示给定时间间隔之间的所有质数。
为了找到两个整数之间的所有质数,创建了`checkPrimeNumber()`函数。 此功能[检查数字是否为质数](/kotlin-programming/examples/prime-number "Check prime number in Kotlin")
为了找到两个整数之间的所有质数,创建了`checkPrimeNumber()`函数。 此函数[检查数字是否为质数](/kotlin-programming/examples/prime-number "Check prime number in Kotlin")
## 示例:两个整数之间的质数
......
......@@ -4,7 +4,7 @@
#### 在此程序中,您将学习使用 Kotlin 中的函数显示两个给定间隔(低和高)之间的所有阿姆斯特朗数字。
为了找到两个整数之间的所有阿姆斯特朗数,创建了`checkArmstrong()`函数。 此功能[检查号码是否为阿姆斯特朗](/kotlin-programming/examples/armstrong-number "Check armstrong number in Kotlin")
为了找到两个整数之间的所有阿姆斯特朗数,创建了`checkArmstrong()`函数。 此函数[检查号码是否为阿姆斯特朗](/kotlin-programming/examples/armstrong-number "Check armstrong number in Kotlin")
## 示例:两个整数之间的阿姆斯特朗数
......@@ -58,4 +58,4 @@ fun checkArmstrong(num: Int): Boolean {
根据返回值,在`main()`函数内的屏幕上打印数字。
下面是等效的 Java 代码:[使用功能检查阿姆斯特朗数的 Java 程序](/java-programming/examples/armstrong-number-function "Java Program to Check Armstrong Number using Function")
\ No newline at end of file
下面是等效的 Java 代码:[使用函数检查阿姆斯特朗数的 Java 程序](/java-programming/examples/armstrong-number-function "Java Program to Check Armstrong Number using Function")
\ No newline at end of file
......@@ -68,7 +68,7 @@ Sum of two matrices is:
6 25
```
在上面的程序中,有两个功能
在上面的程序中,有两个函数
* `multiplyMatrices()`将两个给定矩阵相乘并返回乘积矩阵
* `displayProduct()`在屏幕上显示乘积矩阵的输出。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册