语法概要

河图的语法类似 typescript/kotlin/swift 等现代语言,通常只需要了解一些关键点即可直接上手使用:

声明以关键字开头

河图中所有的声明都以关键字开头。例如:

var, final, const, fun, construct, get, set, class, type

分号可选

河图中的分号是可选的。大多数时候编译器和解释器会自动分清语句的间隔。

类型注解

类型注解是可选的,以冒号形式写在标识符后面。

模式匹配

河图没有使用 switch,而是使用 when 语句 进行简单的模式匹配。

注释

普通注释:

// This is a comment.
/* These are multi-line comments:
another line.*/

文档注释:

/// This is a documentation comment
fun myFunc() -> int {
  ...
}

私有标识符

以 '_' 开头的标识符作为私有标识符。只能在其声明的命名空间才可以访问。

class Person {
  var _name
  construct (name) {
    _name = name
  }
  fun greeting {
    print('Hi, I\'m ', _name)
  }
}
final p = Person('jimmy')
// print(p._name) // Error!
p.greeting()

表达式和语句

河图中,所有语句都是表达式,因此也具有值。

例如变量声明和变量赋值,都会返回变量的值。对于下面的代码

if (a = fetch()) {
  // ...
}

如果 a 的值可以隐式转换为真,则 if 表达式将会执行。

代码块

河图中的代码块会返回最后一个表达式的值:

fun test(n) {
  var x = n * 2
}

上述函数的返回值就是 n * 2

Last Updated:
Contributors: 邵燃