简单修改结构,写了一点入门内容
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# 项目的基本结构
|
||||
|
||||
## 目录
|
||||
|
||||
一般来讲,一个 KMP 项目在生成的时候,长这样
|
||||
|
||||
- /
|
||||
- androidApp/
|
||||
- desktopApp/
|
||||
- iosApp/
|
||||
- webApp/ (JS 已经死了,现在的是 WAMS)
|
||||
- shared/
|
||||
- src/
|
||||
- commonMain/
|
||||
- commonTest/
|
||||
- androidMain/
|
||||
- ......
|
||||
- build.gradle.kts
|
||||
- .gitignore
|
||||
- README.md
|
||||
- gradle 二进制文件(三大平台各一个)
|
||||
- gradle.proporties
|
||||
- local.proporties
|
||||
- build.gradle.kts
|
||||
- settings.gradle.kts
|
||||
|
||||
如果你的项目还要包含 server 的部分的话,那会稍微复杂一点点
|
||||
|
||||
## 各部分用途
|
||||
|
||||
所有的共享的部分(如UI,基础逻辑)都写在 `shared/commonMain` 里面,不同平台如果要做不同的效果,那么,相应的代码写在对应的 `Main` 里面,`App` 目录主要控制打包设置和进入软件的窗口设定,虽然可以写针对不同平台的不同效果,但是不推荐。
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
# 引入 Kotlin
|
||||
|
||||
预计时间 1h
|
||||
|
||||
> 如果您会写 Java,那么事情将会**非常**简单。
|
||||
|
||||
## 基本语法
|
||||
|
||||
### 顶层函数
|
||||
|
||||
Kotlin 程序也从 main 函数开始,你可以直接这么写
|
||||
|
||||
```kotlin
|
||||
fun main() {
|
||||
println("Hello World!")
|
||||
}
|
||||
```
|
||||
|
||||
可以看到,它有很多 C++ 与 Python 的特点。
|
||||
|
||||
### 定义变量
|
||||
|
||||
这里不会列举所有写法,只写明最常用的写法。
|
||||
|
||||
#### 普通变量和类成员变量
|
||||
|
||||
```kotlin
|
||||
val a: Int // 可以注意到,所有类都以大写开头
|
||||
val a = 0 // 支持先声明,再赋值
|
||||
|
||||
val b = "abc" // 直接赋值省略显式变量类型
|
||||
|
||||
var c = 3.0f // 可变变量
|
||||
|
||||
const val STR = "常值变量支持String,推荐大写下划线"
|
||||
```
|
||||
|
||||
### 定义普通函数
|
||||
|
||||
在 Kotlin 里面,cpp 的 void $\Leftrightarrow$ Kotlin 的 Unit
|
||||
|
||||
```kotlin
|
||||
fun oneFuntion(): Unit {
|
||||
// do something...
|
||||
}
|
||||
```
|
||||
|
||||
在函数定义明确的时候是不需要指明返回值的,除非是接口或用作 lambda 变量。
|
||||
|
||||
|
||||
### 定义类与接口
|
||||
|
||||
## 高级一点
|
||||
|
||||
### lambda变量与复杂函数
|
||||
|
||||
## 某些独到的 Kotlin 小特性
|
||||
@@ -0,0 +1,120 @@
|
||||
# 引入 Kotlin
|
||||
|
||||
预计时间 1h
|
||||
|
||||
> 如果您会写 Java,那么事情将会**非常**简单。<br>
|
||||
> 如果您会写 CPP/Python,那么事情将会**较为**简单。
|
||||
|
||||
## 基本语法
|
||||
|
||||
### 顶层函数
|
||||
|
||||
Kotlin 程序也从 main 函数开始,你可以直接这么写
|
||||
|
||||
```kotlin
|
||||
fun main() {
|
||||
println("Hello World!")
|
||||
}
|
||||
```
|
||||
|
||||
可以看到,它有很多 C++ 与 Python 的特点。
|
||||
|
||||
### 定义变量
|
||||
|
||||
这里不会列举所有写法,只写明最常用的写法。
|
||||
|
||||
#### 普通变量和类成员变量
|
||||
|
||||
```kotlin
|
||||
val a: Int // 可以注意到,所有类都以大写开头
|
||||
val a = 0xFF // 支持先声明,再赋值,还有经典非十进制写法
|
||||
|
||||
val b = "abc" // 直接赋值省略显式变量类型
|
||||
|
||||
var c = 3.0f // 可变变量
|
||||
|
||||
const val CONST_STR = "常值变量支持String,推荐大写下划线"
|
||||
```
|
||||
|
||||
### 定义普通函数
|
||||
|
||||
在 Kotlin 里面,cpp 的 void $\Leftrightarrow$ Kotlin 的 Unit
|
||||
|
||||
```kotlin
|
||||
fun oneFuntion(): Unit {
|
||||
// do something...
|
||||
}
|
||||
```
|
||||
|
||||
参数需指明变量类型,支持变长参数,不支持字典
|
||||
|
||||
```kotlin
|
||||
fun thisFuntion(int: Int, vararg folders: String): Int {
|
||||
// do something...
|
||||
}
|
||||
|
||||
fun thatFuntion(vararg folders: String): String {
|
||||
val a = thisFuntion(1, *folders) // 与 Python 写法一致
|
||||
// do something...
|
||||
}
|
||||
```
|
||||
|
||||
在函数定义明确的时候是不需要指明返回值的,除非是接口或用作 lambda 变量。
|
||||
|
||||
|
||||
### 定义类与接口
|
||||
|
||||
```kotlin
|
||||
class MyClass() {}
|
||||
interface MyInterface() {}
|
||||
```
|
||||
|
||||
## 高级一点
|
||||
|
||||
### 列表
|
||||
|
||||
```kotlin
|
||||
val list = ListOf(1, 2, 3, 4, 5, 6) // List 不可变
|
||||
val array = arrayOf("1", "2", "3") // array 可变长
|
||||
```
|
||||
|
||||
### lambda变量与复杂函数
|
||||
|
||||
```kotlin
|
||||
// 定义一个 lambda 很方便
|
||||
val func = { firstVal: Int, secVal: String ->
|
||||
secVal + firstVal // 不写 return 则默认最后一行是返回值
|
||||
}
|
||||
```
|
||||
|
||||
func 变量的类型是 `(Int, String) -> String`,简单易懂
|
||||
|
||||
当函数的最后一行是 lambda 变量时,可以在调用时简化
|
||||
|
||||
```kotlin
|
||||
fun doOrNull(
|
||||
obj: SomeClass?, // 问号表示类型可空
|
||||
func: (SomeClass) -> Int
|
||||
): Int? {
|
||||
return if (obj == null) obj // if 可以被直接返回,这代替了三目运算符
|
||||
else func(obj)
|
||||
}
|
||||
|
||||
// 使用时
|
||||
|
||||
val a = doOrNull(b) { someClass -> someClass.c + 1 }
|
||||
// 在圆括号后直接写 lambda 定义,很方便
|
||||
```
|
||||
|
||||
|
||||
## 某些独特的 Kotlin 小特性
|
||||
|
||||
### 可空变量与对象
|
||||
|
||||
```kotlin
|
||||
```
|
||||
|
||||
### if 与 when
|
||||
|
||||
```kotlin
|
||||
```
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
> 个人认为,Kotlin 是最好的 JVM 语言。
|
||||
|
||||
## 如果你会写 Java
|
||||
## 如果你会写 Java 或 Cpp/Python
|
||||
|
||||
请看 [为会写 Java 的朋友们设计的引入](./引入Kotlin_Java.md)
|
||||
请看 [为会写其他高级语言的朋友们设计的引入](./引入Kotlin_fast.md)
|
||||
|
||||
## 推荐 IDE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user