提交 c0c59b46 编写于 作者: DCloud_Heavensoft's avatar DCloud_Heavensoft

Update README.md

上级 2327936c
......@@ -17,7 +17,7 @@ uts 采用了与 ts 基本一致的语法规范,支持绝大部分 ES6 API。
### 现状说明
uts是一门语言,对标的是js。目前DCloud还未发布基于uts的ui开发框架。所以现阶段使用uts开发ui是很不方便的(就像没有组件和css,拿js开发界面,还不能跨端)。
uts是一门语言。目前DCloud还未发布基于uts的ui开发框架。所以现阶段使用uts开发ui是不方便的(就像没有组件和css,拿js开发界面,还不能跨端)。
现阶段uts适合的场景是开发uni-app的原生插件。因为uts可以直接调用Android和iOS的原生API或jar等库。
......@@ -37,7 +37,7 @@ uts 中声明变量可以用 let 或 const,详见下。
声明一个可重新赋值的变量。语法 `let [变量名] : [类型] = 值;`
> 相当于 TypeScript 中的 let,kotlin 中的 var
> 相当于 TypeScript 中的 let、kotlin 中的 var、swift 中的 var。
```ts
let str :string = "hello"; // 声明一个字符串变量
......@@ -50,7 +50,7 @@ str = "hello world"; // 重新赋值
声明一个只读常量,只能为其赋值一次。语法 `const [变量名] : [类型] = 值;`
> 相当于 TypeScript 中的 const, kotlin 中的 val
> 相当于 TypeScript 中的 const、kotlin 中的 val、swift 中的 let。
```ts
const str :string = "hello"; // 声明一个字符串变量
......@@ -59,9 +59,10 @@ str = "hello world"; // 报错,不允许重新赋值
注意事项:
- 当前 uts 并未限制使用 var 来声明变量,但当使用 var 来声明变量时需要注意不同平台差异
- 当前 uts 并未限制使用 var 来声明变量,但除非你知道你在做什么,否则不要轻易使用它,因为有不同平台差异:
* 编译至 JavaScript 平台时,等同于 JavaScript 平台的 var (存在变量提升现象)
* 编译至 Kotlin 平台时,等同于 Kotlin 平台的 var(允许重新赋值)
- swift 中 let 是定义常量,而 uts 和 ts 中,let 是定义变量。注意勿混淆。
- 类型定义的冒号,左右可以有一个空格,也可以没有空格。`let str:string``let str : string``let str :string``let str: string` 都是合法的。
- 不支持 TypeScript 中的联合类型
......@@ -83,15 +84,18 @@ str = "hello world"; // 报错,不允许重新赋值
Int a = 12
```
但是更现代的语言(kotlin,TS,SWIFT 等)中,都具备类型自动推导的功能,即:如果开发者声明变量的同时,进行了初始化赋值。那么编译器可以根据赋值,自动推导出变量类型,不必开发者手动声明。 即降低了出错的可能,也降低了开发者的心智负担
现代语言(ts、kotlin、swift)中,都具备类型自动推导的功能。
即:如果开发者声明变量的同时,进行了初始化赋值。那么编译器可以根据赋值的字面量,自动推导出变量类型,不必开发者显示声明。即降低了出错的可能,也降低了开发者的心智负担
例如如下 kotlin 代码
```kotlin
// 开发者不必描述 a的类型,编译器会自动将 12 编译为一个Int类型数据变量
var a = 12
```
`uts`同样具备类型自动推导。在定义变量时如果直接赋值,而不使用冒号定义类型,也可以合法运行。
uts 同样具备类型自动推导。在定义变量时如果直接赋值字面量,而不使用冒号定义类型,也可以合法运行。
如下2种写法都是合法的,两个变量都是string类型:
......@@ -100,9 +104,13 @@ let s1 :string = "hello";
let s2 = "hello";
```
目前 uts 未对字面量赋值类型推导做统一处理,编译到 kotlin 和 swift 时,由这2个语言自行做类型推导。但 kotlin 和 swift 的自动推导,在某些地方有细节差异。后续 uts 将统一字面量自动类型推导,详见 [字面量](literal.md)
#### 代码语句的分割
uts的多个代码语句,可以以回车或分号分割。行尾的分号可以省略。如果写在一行,应以分号分割。
uts的多个代码语句,以回车或分号分割。
多行时行尾的分号可以省略。如果写在一行,应以分号分割。
如下的代码都是合法的:
......@@ -112,7 +120,3 @@ let b:boolean = false; //行尾可以加分号
let c:number = 3 ; let d:number = 4 // 同行多语句需要用分号分割
```
## 开发指南
- [使用 uts 开发 uni-app 原生插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
- [Android平台uts开发指南](https://uniapp.dcloud.net.cn/plugin/uts-for-android.html)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册