Skip to content

Latest commit

 

History

History
110 lines (59 loc) · 2.49 KB

basictype.md

File metadata and controls

110 lines (59 loc) · 2.49 KB

基本类型

rescript是一门静态类型语言,解释型,以下是内置的基本类型:

布尔类型

bool,布尔类型,值只能是true或false。

逻辑运算符:

  • && :且

  • ||:或

  • !:非

比较运算符:

  • <=,>=,<,>

  • == :结构相等,值相等

  • ===:引用相等,即相同内存地址

  • !=:结构或值不等于

  • !==:引用不相等,即不同内存地址

整数类型

int,整数类型,32位。

rescript中整数就这么一种类型,

整数专门的运算符为:+,-,*,/

可使用下划线作为视觉上的分隔,不影响本来的值,下划线可放在任何位置,不一定是千分位:

let num = 1_000_00_0

小数类型

float,小数类型,64位。

rescript中小数就这么一种类型,

小数专门的运算符为:+. ,-. ,*. ,/. *

字符串类型

string,字符串类型

字符串只能使用双引号和反引号,单引号给了字符类型使用。

字符串专门的运算符为:++,表示2个字符串相连。

let greetings = "Hello " ++ "world!"

字符类型

单引号用来表示单字符类型,ascii,非UTF-8。

let firstLetterOfAlphabet = 'a'
Js.log(firstLetterOfAlphabet)	//97

函数类型

函数也是一种基本类型,其实就是把一个名字跟一个函数绑定,这样let绑定就包含了基本类型和函数定义,从设计上看很统一。

let greet = (name) => "Hello " ++ name
let greet_more = name => {
  "hello" ++ name
}

unit类型

占位符类型,跟C语言中的void类型作用差不多,没有返回值。

编程语句可分为:语句和表达式,语句不返回值,表达式返回值,

在命令式语言中,把表达式抽象为语句的一种,这样一切都是语句,

在函数式语言中,把语句抽象为表达式的一种,这样一切都是表达式,

而表达式是都有返回值的,unit就当做是语句的返回值类型,只有唯一的值:()。

类型系统的优势

rescript这样的基本类型和运算符设计,写代码时很多情况都可以不用手工明确类型,

代码可以保持像js动态类型的写法那样简短,由解释器自动推断类型,推断得又准确,

准确的类型系统是性能好的基础,真是两者兼得。

所以说rescript作为优秀的脚本语言,既有静态类型的可靠性,又有动态类型的灵活感,

号称是来自未来的js,是有这个底气的。