demo语言文档

类型

程序的结构

本demo中的程序由一系列函数定义构成,函数定义形如:

        fun function_name(arg1 : type1, ...) {
            function_body // 一个表达式
        }
        
返回值就是函数体表达式的结果,其类型可以自动推导,不需要也暂时无法手动标注。

函数在声明时支持一种特殊语法,来指定函数默认的“传参模式”。 例如,考虑函数print(x : &T)。 调用它时,往往需要手动创建借用,例如print(&expr)。 这有时会成为语法噪音。为此,可以将print的第一个参数的默认传参方式声明为 “按只读借用传递”:

        print2(&x : T)
        
注意&的位置的变化。 现在,向print2传递参数时,编译器会按照默认传参模式自动插入一个&。 上面的例子直接写作print2(expr)即可。 如果已经有一个只读借用,想要传给print2,也很简单。 只需要写成print2(*existing_borrow)即可。

表达式的语法

本demo中的语言只有表达式,没有语句。 它主要用于演示borrow checker, 所以设计上和borrow checker无关的部分能简则简, 请不要用看待正常语言的眼光来看它: