马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
以下内容针对TC3.039 beta的语法而作。
本文是写给有一定程序基础的小程序员的TC入门指南。
力求文字准确、简洁,让你在最短的时间内上手TC语法。
为避免描述与TC中文关键字冲突,文章中只使用英文关键字。
本人接触TC不到一个月时间,如有写错的地方,望各位老师指出。
命名空间
语法:
- namespace 空间名
- endnamespace
复制代码
说明:
1.除了预处理指令外,其他语句都必须写在明确的命名空间内。TC不支持全局命名空间或匿名命名空间。
2.空间名必须符合TC的命名规则。
3.空间名必须唯一,不能与TC API中的空间名重复,也不能与同一项目中其他的空间名重复。
命名规则
说明:
在变量名、函数名以及空间名中可以使用字母、数字、下划线以及中文字符,但必须以字母或者中文字符开头,最长支持31个字符。此外,TC是大小写敏感的,name和Name是两个不同的名称。
数据类型
TC内建四种数据类型:整型(int)、双精度浮点型(double)、布尔型(bool)以及字符串(string)。
int
整型,占4字节内存,可以表示大小介于-2,147,483,648到2,147,483,647之间的有符号整数。
但是TC有一个bug,导致无法将-2,147,483,648直接赋值给一个整型变量,语句"int a = -2147483648"是编译不过。
double
双精度浮点型,占8字节内存,可以表示大小介于-1.79769313486232e308到+1.79769313486232e308之间的64位双精度浮点数,以及正负零、正负无穷大和非数字(NaN)。(这条未能测试,因为在TC里显示不了这么精确,但根据这些数据推测应该就是C++内建的double类型。)
bool
布尔型,只有两种取值,true和false。
string
字符串,用双引号引起来的一串字符。支持部分转义字符,如:双引号(\")、单引号(\')、反斜杠(\\)、换行符(\n)、回车符(\r)、制表符(\t)。
变量
语法:
- {int|double|bool|string} 变量名[, 变量名2[, ...[, 变量名n]
复制代码
文中第一次使用这个语法规则,大意如下:
|(竖线)表示选择其中一项。
{}(大括号)必选语法项。
[](方括号)可选语法项。
...表示可类比的重复项。
说明:
1.TC支持全局变量和局部变量。
2.变量名必须符合TC的命名规则。
3.不管是全局变量还是局部变量,在自己的作用域内变量名必须唯一。
4.声明局部变量时可以赋初值,全局变量不行。
5.TC支持在一行内定义多个相同类型的变量,变量名之间用半角逗号分隔。
常量
TC目前不支持定义常量,因此只能使用某些方法变通解决常量的问题。比如,使用一个单独的文件存放所有常量,值以函数调用的方式取得。
- namespace const
- // 返回最大整数
- function int Int32MaxValue()
- return 2147483647
- endfunction
- // 返回最小整数
- function int Int32MinValue()
- return -2147483647 - 1
- endfunction
- endnamespace
复制代码 运算符
赋值运算符
TC只有一种赋值运算符,那就是等号(=)。对于赋值运算只提一点说明,TC不支持连等赋值。
算术运算符
TC支持加(+)、减(-)、乘(*)、除(/)以及取模(%)五种算术运算。
逻辑运算符
三种逻辑运算AND(&&)、OR(||)和NOT(!)。
关系运算符
六种关系运算小于(<)、大于(>)、小于等于(<=)、大于等于(>=)、等于(==)、不等于(!=)。
其中只有等于(==)支持布尔类型。
优先级(摘抄自TC帮助文档,暂未验证)
TC运算符优先级从高到低依次为:
命名空间点 (.)
逻辑运算符 (!)
算术运算符 (*, /, %)
算术运算符 (+, -)
关系运算符 (<, <=, >, >=)
关系运算符 (==, !=)
逻辑运算符 (&&)
逻辑运算符 (||)
赋值运算符 (=)
函数
语法:
- function 返回值类型 函数名([参数类型 [&]参数名1[=默认值1][, ...[, 参数类型 [&]参数名n[=默认值n]]]])
- return 返回值
- endfunction
复制代码 说明:
1.TC函数支持值传递(pass-by-value)和引用传递(pass-by-reference)两种方式,参数默认为值传递,要使用引用传递需要在参数名前面加一个(&)符号。
2.TC函数支持默认参数。
3.TC不支持无返回值的函数,如果你不需要返回值,就返回true好了。
4.在调用函数时,采用空间名.函数名(参数列表)的形式。注意!空间名是必须的,即便是同一命名空间内的函数,空间名也不能省略!
流程控制语句
if语句
语法:
- if (条件)
- 语句1
- [else
- 语句2]
- endif
复制代码 说明:
if语句支持嵌套,但是没有elseif/else if这种语法。
select语句(就是C语言的switch语句)
语法:
- select (表达式)
- case 常量表达式1:
- 语句1
- [ case 常量表达式2:
- 语句2
- ...
- case 常量表达式n:
- 语句n]
- [ default:
- 默认语句]
- endselect
复制代码 说明:
1.与C语言不同,在TC中case语句之间不需要用break隔开。
2.与C语言不同,表达式可以是数字以外的类型,如字符串、布尔型等。
3.即使没有case和default也不会报错,但那样就不合乎逻辑了。
while语句
语法:
说明:
只要条件为真就一直循环,所以呢,要小心死循环哦。
repeat语句
语法:
- repeat (执行次数n)
- 语句
- endrepeat
复制代码 说明:
将包含的语句执行指定次数。注意,这里的执行次数n只能是正整数常量。
反正是限制多多,据说下一个版本已经把repeat去掉了,新增了一个for语句。
continue和break语句
说明:
TC支持这两条语句,其他的我就不多废话了。
数组
语法:
- {int|double|bool|string}[] 一维数组 = {int|double|bool|string}[维数]
- {int|double|bool|string}[][] 二维数组 = {int|double|bool|string}[维数][维数]
- {int|double|bool|string}[][][] 三维数组 = {int|double|bool|string}[维数][维数][维数]
复制代码 说明:
1.TC目前支持到三维数组。
2.TC支持动态数组。
3.数组下标从零开始计算。
4.数组可以用于函数的参数和返回值。
5.数组用于函数的参数时默认为值传递。
注释
说明:
TC只支持行注释(//),如果需要对一大段代码进行注释,最好使用编辑里的注释功能按钮。
预处理指令
#include用于包含其他文件中的代码,支持相对路径。
#import用于导入COM插件接口。
|