ChaiScript的基础语法概要


关于ChaiScript的基础语法讲解并不像如何使用ChaiScript那样模糊,在官网上已经讲的很详尽清楚了,只不过是英文版本,我就简单的翻译一下,我尽量建议大家看英文版本,因为我的英文水平我自己都不放心…… 

 

1、            条件模块(if
       ChaiScript支持If语句,但是需要说明:"else if"是一个单独的关键字而不是两个分开的关键字。大概的用法格式如下:
var i = 2
if (i < 2)
{
     print("less than 2")
}
else if (i == 2)
{
     print("equal to 2")
}
else
{
     print("more than 2")
}
 
2、            循环语句
       ChaiScript跟C + +的循环风格差不多有两种:for循环和while循环。大概的用法如下:
1)        For 循环:
for (var i = 0; i < 10; ++i)
{
     print("i: " + i.to_string())
} 
2)        While 循环:
var i = 0
while (i < 10)
{
     print("i: " + i.to_string())
     ++i
}
       说明:跟C++一样,在ChaiScript中也可以使用break关键字来中断循环。
3、            容器(Vectors、Maps
ChaiScript支持少数容器类型,也允许用简捷的写法创建VectorsMaps。比如:
1)        Vectors:
var x = [1, 2, 3]
print(x[1])
2)        Maps:
var x = ["bob":1, "fred":2]
print(x["fred"])
       同样,我们也可以通过一个值的范围来快速的创建Vector容器,例如:
var x = [1..10]
print(x)
4、            函数
在ChaiScript中定义函数有两种书写方法。
1)        使用“def”关键字定义静态函数,在全局范围内都可见。比如:
def add_elems(x, y)
{
     x + y
}
print(add_elems(5, 10))
2)        创建一个匿名函数,通常赋值给一个变量来使用。
var add_elems = fun(x, y) { x + y }
print(add_elems(5, 10))
5、            返回值
函数的返回值也可以有两种写法。
一种是跟C++一样,明确的使用关键字”return”返回,用法跟C++一样,例如:
def five()
{
 return 5
}
print(five())
另一种是隐式的返回函数结果,就是当一个函数没有明确的使用return语句返回时,最后的这个数值就作为函数的返回值,比如:
def five()
{
 5
}
print(five())
       这样定义函数的返回值与上一种写法是一样的。
6、            方法(Methods
其实ChaiScript并不支持什么方法,只是利用了函数的一个被叫作“syntactic sugar”的技术代替的方法。例如:
5.to_string()
to_string(5)
       这就是:值在“.”的左边作为第一个参数命名的函数而已,没有别的区别。
7、            派遣函数(Dispatch Functions
ChaiScript允许函数重载,使用派遣函数可以自动的使用相应的函数已达到相应的功能。比如说,你想从一堆数中打印出正确的复数,可以这样写代码:
def print_num(x) : x == 0 || x > 1
{
  print(x.to_string() + " units")
def print_num(x) : x == 1
{
  print(x.to_string() + " unit")
}
print_num(2)
print_num(1)
print_num(0)

转载自聚星亭

Copyright @ GameAiPk - 游戏AI竞技网 All Rights Reserved

Mail: admin@mygameai.com  Tel: 13816782827

  沪ICP备09069436号