01 Introduction¶
Hello World in YIAN¶
// hello.an
from std.core.io import print
i32 main() {
print("Hello World!\n")
return 0
}
通过下面的命令的将以上源代码编译成可执行文件:
./scripts/yian_compiler.py hello.an
编译成功后会在 tests/yian_workspace/bin 目录下生成一个名为 out 的可执行文件,运行它:
./tests/yian_workspace/bin/out
你将会在终端看到输出:
Hello World!
Explanation¶
from std.core.io import print: 从标准库std的core.io模块中导入print函数, 用于在终端输出文本.i32 main() { ... }: 定义一个返回类型为i32的函数main, 在 YIAN 中,main函数是程序的入口点.- 出于方便的考虑, YIAN 直接使用
i32作为main函数的返回类型, 这与 C/C++ 中的约定相同. print("Hello World!\n"): 调用print函数输出字符串 "Hello World!\n" 到终端.print是定义在std.core.io模块中的一个函数, 用于在终端输出文本, 目前仅支持输出str类型的参数.return 0: 从main函数返回0, 表示程序成功执行完毕.
Program Structure¶
YIAN 程序的结构由以下几个部分组成:
- 模块导入: 使用
from ... import ...语法导入所需的函数或类型(不支持导入变量和模块)- 亦可使用
import ...来进行导入 - 允许使用
as关键字为导入的函数或类型指定别名
- 亦可使用
- 函数定义: 使用
<return_type> <function_name><type_parameters>(<parameters>) { ... }语法定义函数 - 变量声明: YIAN 暂不支持全局变量
- 自定义类型: YIAN 支持三种自定义类型: struct, enum 和 trait, 详见类型系统章节
- 类型别名: 使用
typedef <new_type> = <existing_type>语法定义类型别名 - 实现方法: 使用
impl <type> { ... }和impl <trait> for <type> { ... }语法为类型实现方法, 详见方法章节 - 注释: 使用
//进行单行注释