提交 eaff3a0c 编写于 作者: W wizardforcel

2022-01-28 22:42:47

上级 e01850ea
......@@ -4,7 +4,7 @@
欢迎来到Kotlin教程系列。Kotlin 是一种针对 Java 平台的相对较新的编程语言。我们几乎可以在 Java 的任何地方使用 Kotlin。Kotlin 可用于开发服务器端应用、安卓应用、数据科学领域等。Kotlin 代码也可以转换成 JavaScript 代码。有一些 Java 的背景知识是好的,但是如果你没有 Java 的任何先验知识,那就不成问题了。
Kotlin 具有代码简洁、安全、实用等特点。它也完全可以与 Java 互操作。因此,它也支持所有现有的 Java 库和框架。
Kotlin 具有代码简洁、安全、实用等特点。它也完全可以与 Java 互操作。因此,它也支持所有现有的 Java 库和框架。
## Kotlin历史
......
......@@ -2,7 +2,7 @@
> 原文:<https://www.studytonight.com/kotlin/kotlin-keywords-and-identifiers>
每种编程语言都有特定的**预定义词**,它们带有某种特殊的含义。它们被称为关键。关键字不能用作标识符。
每种编程语言都有特定的**预定义词**,它们带有某种特殊的含义。它们被称为关键。关键字不能用作标识符。
标识符是变量、类、函数、接口等的名称。
......@@ -14,15 +14,15 @@ val name: String = "emp_name"
然而,在 Kotlin 中,我们可以根据它们的类型使用一些关键字作为标识符。
## 关键类型
## 关键类型
Kotlin 中有两种类型的关键字:
1. 硬关键
1. 硬关键
2. 软关键
2. 软关键
### 硬关键
### 硬关键
硬关键字不能用作标识符。如果将它们用作标识符,将会引发错误。
......@@ -32,7 +32,7 @@ Kotlin 中有两种类型的关键字:
val fun = 5   // Error
```
Kotlin的硬关键是:
Kotlin的硬关键是:
<caption>**Hard keywords**</caption>
| 为 | 断开 | 级 | 继续 |
......@@ -43,7 +43,7 @@ Kotlin的硬关键词是:
| 真 | 试试 | 类型别名 | 类型 |
| val | 在处 | 当 | 而 |
### 软关键
### 软关键
软关键字在特定的上下文中被视为关键字,只要它们适用。在其他情况下,它们可以用作标识符。例如,当我们设置类或成员的可见性时,private 被认为是关键字。在另一个上下文中,它可以用作标识符。
......@@ -51,7 +51,7 @@ Kotlin的硬关键词是:
val private = 5 // No Error
```
Kotlin 中的软关键是:
Kotlin 中的软关键是:
| 经过 | 哪个 | 构造器 | 代表 |
| 动态的 | 领域 | 文件 | 最后 |
......@@ -68,7 +68,7 @@ Kotlin 中的软关键词是:
## 摘要
在本教程中,我们研究了关键字和标识符。我们将使用和研究本教程系列中的大多数关键
在本教程中,我们研究了关键字和标识符。我们将使用和研究本教程系列中的大多数关键
接下来,我们将研究Kotlin中的变量。
......
......@@ -10,7 +10,7 @@
2. 定义变量
## 盆地 `val` 关键字
## Kotlin `val` 关键字
`val`关键字用于声明一个“只读”变量,即一个**不可变的**变量。简单来说,无法将值重新分配给标有`val` 关键字的变量。
......@@ -23,7 +23,7 @@ name = "World!!"    //Error: Val cannot be reassigned
当在一个变量的生命周期内,它只需要像创建一个类的对象一样被赋值一次时,建议使用`val`。它还确保开发人员不会意外地将值重新分配给不应更改的变量。
## 盆地 `var` 关键字
## Kotlin `var` 关键字
`var`关键字用于声明**可变的**变量,即其值可以改变并重新分配给它的变量。
......@@ -52,7 +52,7 @@ println(empName)
## `const`和`val`的区别
`val``const`这两个关键似乎在做同样的工作,即声明常量变量。但是它们之间有细微的差别。`const`关键字用于声明**编译时常量**,而`val`关键字可以声明**运行时常量**。让我们用一个例子来理解它:
`val``const`这两个关键似乎在做同样的工作,即声明常量变量。但是它们之间有细微的差别。`const`关键字用于声明**编译时常量**,而`val`关键字可以声明**运行时常量**。让我们用一个例子来理解它:
假设我们声明了一个变量`empName`,我们想给它赋值,这个值将由函数`sayHello()`返回。如果我们使用`val`关键字,我们将不会得到任何错误:
......@@ -78,7 +78,7 @@ fun sayHello():String{
## 摘要
在本教程中,我们讨论了Kotlin中的变量类型。我们也看到了`const`关键词的使用以及`val``const`关键词的区别。在下一个教程中,我们将讨论 Kotlin 中的数据类型。
在本教程中,我们讨论了Kotlin中的变量类型。我们也看到了`const`关键字的使用以及`val``const`关键字的区别。在下一个教程中,我们将讨论 Kotlin 中的数据类型。
* * *
......
......@@ -163,7 +163,7 @@ val marks: Array<Int> = arrayOf(10,9,2,7,8,6,10)
我们将在后面的章节中详细讨论数组。
### 5\. 琴弦盆地
### 5\. 琴弦Kotlin
一个字符串可以使用 Kotlin 中的**字符串**类来表示。字符串基本上是字符、单词或句子的集合,可以包含字符、数字、特殊字符,但所有内容都应该用双引号括起来。比如“*嗨我是一根弦*”就是一根弦。字符串总是在双引号内声明。
......
......@@ -44,7 +44,7 @@ Kotlin 中的所有异常类都是类**可投掷**的后代。
## Kotlin中的异常处理
Kotlin 中的异常处理可以用四个关键来理解。它们是:
Kotlin 中的异常处理可以用四个关键来理解。它们是:
1. **Try** :可能发生异常的代码块被放在 Try 块中。try 块后面必须至少有一个 catch 块或一个 finally 块,或者两者都有。
......@@ -58,7 +58,7 @@ Kotlin 中的异常处理可以用四个关键词来理解。它们是:
## **总结**
在本教程中,我们了解了什么是异常,以及 Java 和 Kotlin 中异常类型的区别。在下一个教程中,我们将详细介绍如何使用`try``catch``finally``throw`关键来处理科特灵中的异常。
在本教程中,我们了解了什么是异常,以及 Java 和 Kotlin 中异常类型的区别。在下一个教程中,我们将详细介绍如何使用`try``catch``finally``throw`关键来处理科特灵中的异常。
* * *
......
# Kotlin试捕
# Kotlin`try-catch`
> 原文:<https://www.studytonight.com/kotlin/kotlin-try-catch>
......
# Kotlin多重捕捉区
# Kotlin多重`catch`
> 原文:<https://www.studytonight.com/kotlin/kotlin-multiple-catch-blocks>
在本教程中,我们将学习如何以及为什么在 Kotlin 中使用多个`catch`块和`try`块来处理异常。一个`try`区块可以有多个`catch`区块。多个 catch 块用于捕获不同类型的异常。
**多重捕捉块**的语法是:
**多重`catch`块**的语法是:
```
try {
......
# Kotlin嵌套试捕
# Kotlin嵌套`try-catch`
> 原文:<https://www.studytonight.com/kotlin/kotlin-nested-try-catch>
......@@ -21,7 +21,7 @@ try {
如果内部`try`块出现异常,则首先用内部`catch`块进行检查。如果没有在那里处理,那么将使用外部`catch`块进行检查,以此类推。
## Kotlin嵌套试捕-示例:
## Kotlin嵌套`try-catch`-示例:
让我们使用嵌套的`try-catch`块编写一个程序:
......
# Kotlin终于挡住了
# Kotlin `finally`块
> 原文:<https://www.studytonight.com/kotlin/kotlin-finally-block>
......@@ -6,7 +6,7 @@
`finally`块可以放在`catch`块之后,也可以直接放在`try`块之后。与`catch`街区不同的是,**只能有一个`finally`街区**
## 盆地 `finally` 关键词
## Kotlin `finally` 关键字
`try-finally`块的**语法**是:
......
# Kotlin抛出关键词
# Kotlin`throw`关键字
> 原文:<https://www.studytonight.com/kotlin/kotlin-throw-keyword>
......@@ -6,7 +6,7 @@
Kotlin`throw`关键字明确用于抛出异常。我们也可以创建自己的自定义异常,并使用 Kotlin `throw`关键字抛出它。
## 盆地 `throw` 关键词
## Kotlin `throw` 关键字
`throw`关键字的语法是:
......
# Kotlin收藏
\ No newline at end of file
# Kotlin集合
\ No newline at end of file
# Kotlin收藏
# Kotlin集合
> 原文:<https://www.studytonight.com/kotlin/kotlin-collections>
在本节中,我们将向您简要介绍Kotlin的收藏。收藏的概念对Kotlin来说并不陌生。它已经存在于许多其他编程语言中。Kotlin 标准库提供了一套创建和管理集合的工具。
在本节中,我们将向您简要介绍Kotlin的集合。集合的概念对Kotlin来说并不陌生。它已经存在于许多其他编程语言中。Kotlin 标准库提供了一套创建和管理集合的工具。
## 什么是收藏
## 什么是集合
集合是一组相同类型的对象。集合中的对象被称为*元素**项目*
......@@ -14,13 +14,13 @@
## 集合类型
Kotlin有三种类型的收藏:
Kotlin有三种类型的集合:
1. 目录
2. 一组
3. 地图
3. 映射
Kotlin 标准库提供了创建列表、集合和映射对象的方法。根据要求,每一个都可以是:
......@@ -28,7 +28,7 @@ Kotlin 标准库提供了创建列表、集合和映射对象的方法。根据
2. 可变集合(读和写)
我们将在单独的教程中讨论列表、集合和地图。让我们首先讨论可变和不可变集合类型。
我们将在单独的教程中讨论列表、集合和映射。让我们首先讨论可变和不可变集合类型。
### 不可变集合
......@@ -44,7 +44,7 @@ Kotlin 标准库提供了创建列表、集合和映射对象的方法。根据
## 摘要
在本教程中,我们讨论了集合的基础知识和类型。从下一个教程开始,我们将详细讨论**列表****地图****设置**
在本教程中,我们讨论了集合的基础知识和类型。从下一个教程开始,我们将详细讨论**列表****映射****设置**
* * *
......
# 盆地列表
# Kotlin列表
> 原文:<https://www.studytonight.com/kotlin/kotlin-list>
......@@ -192,7 +192,7 @@ fun main() {
## 摘要
在本教程中,我们学习了不可变和可变列表,它们的创建使用了`listOf()``mutableListOf()`函数以及提供的一些重要函数。在下一个教程中,我们将讨论Kotlin的地图
在本教程中,我们学习了不可变和可变列表,它们的创建使用了`listOf()``mutableListOf()`函数以及提供的一些重要函数。在下一个教程中,我们将讨论Kotlin的映射
* * *
......
# 这是一个锅的地图。这是一个锅的地图。这是一个锅的地图,这是一个锅的地图,这是一个锅的地图,这是一个锅的地图
# Kotlin 映射
> 原文:<https://www.studytonight.com/kotlin/kotlin-map>
在本教程中,我们将讨论Kotlin地图。映射用于存储**键和值对**。键和值都是用户定义的。在地图中:
在本教程中,我们将讨论Kotlin映射。映射用于存储**键和值对**。键和值都是用户定义的。在映射中:
* 密钥应该是唯一的,并且每个唯一的密钥只能存储一个值。
......@@ -14,13 +14,13 @@
* 键值对也称为条目。
在Kotlin,我们既可以有一张**可变**地图,也可以有一张**不可变**地图
在Kotlin,我们既可以有一张**可变**映射,也可以有一张**不可变**映射
## Kotlin不可变地图
## Kotlin不可变映射
使用`Map<K, V>`接口创建不可变地图。我们只能从不可变的地图中阅读。
使用`Map<K, V>`接口创建不可变映射。我们只能从不可变的映射中阅读。
在Kotlin中,不可变地图是使用`mapOf()``mapOf<K, V>()`函数创建的。与列表类似,`mapOf()`函数用于创建一个通用映射,其中键和值可以是任何数据类型。`mapOf<K, V>()`用于创建一个特定的地图,分别具有 K 和 V 数据类型的键和值。
在Kotlin中,不可变映射是使用`mapOf()``mapOf<K, V>()`函数创建的。与列表类似,`mapOf()`函数用于创建一个通用映射,其中键和值可以是任何数据类型。`mapOf<K, V>()`用于创建一个特定的映射,分别具有 K 和 V 数据类型的键和值。
让我们使用这两个函数创建不可变的映射:
......@@ -36,7 +36,7 @@ fun main() {
{Rank=1,1 =第一,A =优秀}
{物理=80,数学=97,C++=89}
让我们使用`for``forEach`循环迭代这些地图:
让我们使用`for``forEach`循环迭代这些映射:
```
fun main() {
......@@ -64,27 +64,27 @@ fun main() {
**属性**:
* `size`:返回地图的大小。
* `size`:返回映射的大小。
* `entries`:返回映射中所有键值对的集合。
* `keys`:返回地图中所有按键的集合。
* `keys`:返回映射中所有按键的集合。
* `values`:返回地图中所有值的集合。
* `values`:返回映射中所有值的集合。
**功能**:
* `get(key)`:返回对应键的值。如果键不存在,则返回 null。
* `getValue(key)`:返回给定键的值,如果地图中没有这样的键,则抛出`NoSuchElementException`异常。
* `getValue(key)`:返回给定键的值,如果映射中没有这样的键,则抛出`NoSuchElementException`异常。
* `contains(key)`:如果映射包含指定的键,则返回真,否则返回假。
* `containsKey(key)`:如果映射包含指定的键,则返回真,否则返回假。这个函数与前面的函数相同。
* `containsValue(value)`:如果地图中存在一个或多个指定值的关键点,则返回真。
* `containsValue(value)`:如果映射中存在一个或多个指定值的关键点,则返回真。
* `getOrDefault(key, defaultValue)`:返回该键对应的值,如果地图中没有该键,则返回`defaultValue`
* `getOrDefault(key, defaultValue)`:返回该键对应的值,如果映射中没有该键,则返回`defaultValue`
使用这些方法和属性的示例如下:
......@@ -115,24 +115,24 @@ fun main() {
}
```
地图大小:4
映射大小:4
条目集:【物理=80,数学=97,C++=89,化学= 95】
键集:【物理,数学,C++,化学】
值集:【80,97,89,95】
物理分:80
英语分:空
数学分:97
地图是否包含物理:真
地图是否包含 C++:真
地图是否包含
映射是否包含物理:真
映射是否包含 C++:真
映射是否包含
## Kotlin可变地图
## Kotlin可变映射
可变地图使用`MutableMap` 接口创建。可变地图支持动态特性。在可变地图声明之后,我们可以在其中添加、删除或更新条目。因此可变映射的大小不是固定的。
可变映射使用`MutableMap` 接口创建。可变映射支持动态特性。在可变映射声明之后,我们可以在其中添加、删除或更新条目。因此可变映射的大小不是固定的。
可变地图使用`mutableMapOf()``mutableMapOf<K, V>()`功能创建。`mutableMapOf()`功能用于创建一个通用地图,`mutableMapOf<K, V>()`用于创建一个特定键和值数据类型的地图
可变映射使用`mutableMapOf()``mutableMapOf<K, V>()`功能创建。`mutableMapOf()`功能用于创建一个通用映射,`mutableMapOf<K, V>()`用于创建一个特定键和值数据类型的映射
让我们使用以下方法创建可变地图:
让我们使用以下方法创建可变映射:
```
fun main() {
......@@ -158,11 +158,11 @@ fun main() {
* `replace(key, oldValue, newValue)`:仅当键和旧值对存在时,用新值替换指定键的旧值。
* `remove(key)`:从地图中移除带有指定键的条目。
* `remove(key)`:从映射中移除带有指定键的条目。
* `remove(key, value)`:如果存在具有指定键和值的条目,则从地图中移除条目。
* `remove(key, value)`:如果存在具有指定键和值的条目,则从映射中移除条目。
* `clear()`:从地图中移除所有条目。
* `clear()`:从映射中移除所有条目。
使用这些方法的示例:
......
# Kotlin集
# Kotlin集
> 原文:<https://www.studytonight.com/kotlin/kotlin-set>
......
# Kotlin安全
# Kotlin安全
> 原文:<https://www.studytonight.com/kotlin/kotlin-null-safety>
在本教程中,我们将讨论Kotlin最重要的特性之一:**安全。**在编程世界中,当一个变量不引用任何东西时,它被认为是`null`。如果我们尝试使用这个变量,那么我们将得到`NullPointerException`或 NPE。
在本教程中,我们将讨论Kotlin最重要的特性之一:**安全。**在编程世界中,当一个变量不引用任何东西时,它被认为是`null`。如果我们尝试使用这个变量,那么我们将得到`NullPointerException`或 NPE。
让我们看一个 Java 中发生`NullPointerException`的小例子:
......
# ===科尔多瓦= = =
\ No newline at end of file
# Cordova
\ No newline at end of file
# 科尔多瓦:什么是阿帕奇·科尔多瓦
# Cordova:什么是阿帕奇·Cordova
> 原文:<https://www.studytonight.com/apache-cordova/overview-of-apache-cordova>
......@@ -9,7 +9,7 @@
![Introduction to Cordova](img/b11f618a26a75e82055c2eb182d0a48d.png)
以下是可以使用科尔多瓦开发应用的平台:
以下是可以使用Cordova开发应用的平台:
* 机器人
* ios
......@@ -23,7 +23,7 @@
* * *
## 科尔多瓦建筑
## Cordova建筑
Cordova 为我们提供了可用于访问和激发原生移动操作系统功能的 API,如**地理定位****加速度计****摄像头****存储****通知**等。
......@@ -31,13 +31,13 @@ Cordova 为我们提供了可用于访问和激发原生移动操作系统功能
**网络应用**不过是一个使用`HTML`创建的简单网页,用户界面使用`CSS``Javascript``jQuery`等样式。
科尔多瓦,让我们创建一个应用,其中我们的网络应用在**网络视图(HTML 渲染引擎)**中初始化。
Cordova,让我们创建一个应用,其中我们的网络应用在**网络视图(HTML 渲染引擎)**中初始化。
**科尔多瓦插件**是可用于利用本机操作系统功能的组件。
**Cordova插件**是可用于利用本机操作系统功能的组件。
* * *
### 阿帕奇科尔多瓦的优势
### 阿帕奇Cordova的优势
以下是使用 Apache Cordova 开发应用的一些主要优势:
......
# 科尔多瓦:命令行界面
# Cordova:命令行界面
> 原文:<https://www.studytonight.com/apache-cordova/command-line-interface>
......@@ -11,11 +11,11 @@
* * *
## CLI 在科尔多瓦扮演什么角色?
## CLI 在Cordova扮演什么角色?
* Cordova 完全依赖于 CLI,因此没有它,我们无法执行单个进程。
* 它被使用,
1. 创建一个科尔多瓦项目。
1. 创建一个Cordova项目。
2. 添加我们想要开发应用的平台。
3. 添加插件。
4. 去创造 APK。
......
# 科尔多瓦:应用开发工具
# Cordova:应用开发工具
> 原文:<https://www.studytonight.com/apache-cordova/tools-for-app-development>
......@@ -14,7 +14,7 @@
NodeJS 是一个 JavaScript 运行时,是开源的。我们使用 NodeJS 来执行用 Javascript 编写的后端代码。它是在 Chrome V8 javascript 引擎上制作的。它重量轻,效率很高。
NodeJS 的套餐是`npm`。它是最大的开源图书馆生态系统之一。我们会用`npm`下载**科尔多瓦**,JS 库,各种插件,包等。
NodeJS 的套餐是`npm`。它是最大的开源图书馆生态系统之一。我们会用`npm`下载**Cordova**,JS 库,各种插件,包等。
* * *
......@@ -40,7 +40,7 @@ cordova 命令行界面用于*创建*、*构建*、*部署*、*管理基于 cord
用于开发 Java 应用的是 **Java 开发工具包(JDK)** 。再次非常重要。
在这个快速教程中,我们将使用科尔多瓦开发一个安卓应用,因此,上面提到的工具。在下一个教程中,我们将学习如何在您的计算机/笔记本电脑上设置所有这些工具。
在这个快速教程中,我们将使用Cordova开发一个安卓应用,因此,上面提到的工具。在下一个教程中,我们将学习如何在您的计算机/笔记本电脑上设置所有这些工具。
* * *
......
# 科尔多瓦:工具安装
# Cordova:工具安装
> 原文:<https://www.studytonight.com/apache-cordova/tools-installation>
......@@ -28,7 +28,7 @@
* * *
## 安装科尔多瓦
## 安装Cordova
**cmd****节点 cmd** 中键入`npm install -g cordova`。安装完成后,通过输入`cordova -v`进行检查。
......
# 科尔多瓦:需要编程语言
# Cordova:需要编程语言
> 原文:<https://www.studytonight.com/apache-cordova/programming-languages>
......@@ -142,7 +142,7 @@ $('div').html("I am learning Hybrid App development on Studytonight");
* * *
### 科尔多瓦:如何使用 JavaScript 库?
### Cordova:如何使用 JavaScript 库?
将它包含在您的 HTML 页面中,就像您添加了一个单独的 Javascript 文件并使用它一样。
......
# 科尔多瓦:首个安卓应用
# Cordova:首个安卓应用
> 原文:<https://www.studytonight.com/apache-cordova/first-android-application>
......@@ -35,7 +35,7 @@
* * *
## 科尔多瓦:修改我们的应用
## Cordova:修改我们的应用
现在我们将在<u>第 4 步</u>之后把自己的文件添加到 app 文件夹中。
......
# 科尔多瓦:整合谷歌地图
# Cordova:整合谷歌地图
> 原文:<https://www.studytonight.com/apache-cordova/integrating-google-map>
......
......@@ -20,7 +20,7 @@ Plugina 允许用 Cordova 开发的应用访问设备的功能。插件是用 Ja
* * *
### 科尔多瓦:插件的类型
### Cordova:插件的类型
插件有很多种,有些是:
......
# 在你的应用中使用科尔多瓦插件
# 在你的应用中使用Cordova插件
> 原文:<https://www.studytonight.com/apache-cordova/plugin-integration>
......@@ -16,7 +16,7 @@
* * *
### 科尔多瓦:使用地理定位插件
### Cordova:使用地理定位插件
让我们创建一个应用,收集你的位置坐标,并显示在谷歌地图上。我们已经创建了一个与谷歌地图集成的应用,现在我们将创建另一个应用,它将在谷歌地图上显示您的设备的位置。
......
# 科尔多瓦:AJAX 简介
# Cordova:AJAX 简介
> 原文:<https://www.studytonight.com/apache-cordova/introduction-to-ajax>
......
# 科尔多瓦:与后端的连接
# Cordova:与后端的连接
> 原文:<https://www.studytonight.com/apache-cordova/connection-with-backened>
......@@ -89,7 +89,7 @@
* * *
### 科尔多瓦:将代码移植到安卓应用
### Cordova:将代码移植到安卓应用
现在我们将在手机上运行这个代码,所以首先用同一个**热点**连接你的笔记本电脑和手机(在其中你将测试你的应用)。一旦连接建立,打开笔记本电脑中的 **cmd** ,输入`ipconfig`并按回车键。它会显示 IP 地址,如果你的电脑连接了 WIFI 路由器,那么复制**无线局域网适配器 wifi** 的 IP,否则复制局域网 IP 地址。将【index.html】*中`$.ajax`功能内的`localhost` ( `url`属性)替换为该 IP 地址。*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册