TC官方合作论坛
标题:
小程序员的TC入门指南——语法篇
[打印本页]
作者:
爱玩的一休
时间:
2012-9-23 20:34
标题:
小程序员的TC入门指南——语法篇
以下内容针对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语句
语法:
while (条件)
语句
endwhile
复制代码
说明:
只要条件为真就一直循环,所以呢,要小心死循环哦。
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插件接口。
作者:
964430272
时间:
2012-9-23 20:51
不错
作者:
TC95239595
时间:
2012-9-24 06:09
好很好非常好
作者:
zxyc2000
时间:
2012-9-24 08:44
感谢分享,又学到了一些。
作者:
TC管理员
时间:
2012-9-24 09:41
支持!
作者:
scj2zxy
时间:
2012-9-24 15:51
挺全的
作者:
wohwos
时间:
2012-10-13 22:07
加油1~!~~
作者:
05windows
时间:
2012-10-20 11:16
英文看不懂
作者:
TC兔子
时间:
2012-11-1 11:53
支持
作者:
yjqqqtu
时间:
2012-12-7 06:29
英文的看着头大。。
作者:
csc100
时间:
2013-1-11 11:18
.不懂,fuzijiaocheng?
作者:
jingaoliang
时间:
2013-1-21 22:06
现场vv
作者:
七影
时间:
2013-1-27 10:19
好东西!能有中文版就更好了!
作者:
zhmap
时间:
2013-3-5 00:00
顶一个
作者:
TC小电钻
时间:
2014-3-6 20:08
看的好纠结
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1