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
}
占位符类型,跟C语言中的void类型作用差不多,没有返回值。
编程语句可分为:语句和表达式,语句不返回值,表达式返回值,
在命令式语言中,把表达式抽象为语句的一种,这样一切都是语句,
在函数式语言中,把语句抽象为表达式的一种,这样一切都是表达式,
而表达式是都有返回值的,unit就当做是语句的返回值类型,只有唯一的值:()。
rescript这样的基本类型和运算符设计,写代码时很多情况都可以不用手工明确类型,
代码可以保持像js动态类型的写法那样简短,由解释器自动推断类型,推断得又准确,
准确的类型系统是性能好的基础,真是两者兼得。
所以说rescript作为优秀的脚本语言,既有静态类型的可靠性,又有动态类型的灵活感,
号称是来自未来的js,是有这个底气的。