基础语法
第一个Silk程序
像大多数语言一样,第一个入门代码便是”Hello World“,以下代码便是输出Hello, World!
main()
{
print("Hello, World!");
}
Silk程序主要由以下几部分组成:
include命令,
函数,类,
变量,
语句(包含关键字,标识符),
注释
。每一个Silk程序需要通过主函数main执行,所以执行程序中必须包含main()函数。
下面是一个结构完整的程序:
//包含基类的文件
#include "HttpServer.si"
//建立一个新类
class CMyHttpServer(port)
{
//继承自基类
self=CHttpServer(port);
}
//获取当前目录函数
func get_curdir()
{
curfile=_getargv()[0];
pos=curfile.rfind("\\");
if(pos>=0)
return curfile.substr(0,pos+1);
return "";
}
main()
{
server=CMyHttpServer(80);
server.set_defaultdir(get_curdir()+"webpages","index.html");
server.run();
}
1.
关键字,Silk的保留关键字,和C类似:
main, if, else, while, break, return, continue, for, null,
true, false, func, class, self, global, static
包括下列内置函数:
_input, _getargv,_copy, _loadlib, _freelib, _calllib, _createthread, _createlock, _lock, _unlock,
_len, _str, _int, _float, _type, _fun , print , printf , sprintf
2.
标识符(变量名,函数名,类名等)的定义规则,和C类似:
- 任何标识符的第一个字符必须是字母表中字母或下划线 _
- 标识符的其他的部分由字母、数字和下划线组成
- 标识符对大小写敏感
- 标识符不能与上面的关键字重名
合法标识符例子:strName, _nCount, str_name2
非法标识符例子:Name#12, my-Name, 2Name, if, Jack&Jones, N.a.m.e
3.
分号
分号是语句的结束符,用来分割不同的语句:
原则上每个语句必须以分号结束,类和函数定义的结尾,分号可以省略。
对于函数或组合语句(if, while, for)的结尾语句,分号可以省略,但为了统一,不推荐这么做。
4.
注释 和C类似,
单行注释,以//开头,
多行注释,以/*开头,以*/结尾:
/*
这是一个计算斐波那契数列的函数
参数: n
返回值: 斐波那契数
*/
func Fibonacci(n)
{
if (n == 0)
return 0;
else if (n <= 2)
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2);//递归调用
}
main()
{
//打印前20个斐波那契数列
for(i=0;i<20;i++)
print(Fibonacci(i));
}