TC官方合作论坛

 找回密码
 立即注册
查看: 6006|回复: 14

小程序员的TC入门指南——语法篇

[复制链接]
发表于 2012-9-23 20:34:45 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
以下内容针对TC3.039 beta的语法而作。

本文是写给有一定程序基础的小程序员的TC入门指南。
力求文字准确、简洁,让你在最短的时间内上手TC语法。
为避免描述与TC中文关键字冲突,文章中只使用英文关键字。
本人接触TC不到一个月时间,如有写错的地方,望各位老师指出。

命名空间
语法:

  1. namespace 空间名
  2. 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)。


变量
语法:
  1. {int|double|bool|string} 变量名[, 变量名2[, ...[, 变量名n]
复制代码

文中第一次使用这个语法规则,大意如下:
|(竖线)表示选择其中一项。
{}(大括号)必选语法项。
[](方括号)可选语法项。
...表示可类比的重复项。
说明:
1.TC支持全局变量和局部变量。
2.变量名必须符合TC的命名规则。
3.不管是全局变量还是局部变量,在自己的作用域内变量名必须唯一。
4.声明局部变量时可以赋初值,全局变量不行。
5.TC支持在一行内定义多个相同类型的变量,变量名之间用半角逗号分隔。

常量

TC目前不支持定义常量,因此只能使用某些方法变通解决常量的问题。比如,使用一个单独的文件存放所有常量,值以函数调用的方式取得。

  1. namespace const

  2. // 返回最大整数
  3. function int Int32MaxValue()
  4.     return 2147483647
  5. endfunction

  6. // 返回最小整数
  7. function int Int32MinValue()
  8.     return -2147483647 - 1
  9. endfunction

  10. endnamespace
复制代码
运算符
赋值运算符
TC只有一种赋值运算符,那就是等号(=)。对于赋值运算只提一点说明,TC不支持连等赋值。
算术运算符
TC支持加(+)、减(-)、乘(*)、除(/)以及取模(%)五种算术运算。
逻辑运算符
三种逻辑运算AND(&&)、OR(||)和NOT(!)。
关系运算符
六种关系运算小于(<)、大于(>)、小于等于(<=)、大于等于(>=)、等于(==)、不等于(!=)。
其中只有等于(==)支持布尔类型。

优先级(摘抄自TC帮助文档,暂未验证)
TC运算符优先级从高到低依次为:
命名空间点 (.)
逻辑运算符 (!)
算术运算符 (*, /, %)
算术运算符 (+, -)
关系运算符 (<, <=, >, >=)
关系运算符 (==, !=)
逻辑运算符 (&&)
逻辑运算符 (||)
赋值运算符 (=)

函数

语法:

  1. function 返回值类型 函数名([参数类型 [&]参数名1[=默认值1][, ...[, 参数类型 [&]参数名n[=默认值n]]]])
  2.     return 返回值
  3. endfunction
复制代码
说明:
1.TC函数支持值传递(pass-by-value)和引用传递(pass-by-reference)两种方式,参数默认为值传递,要使用引用传递需要在参数名前面加一个(&)符号。
2.TC函数支持默认参数。
3.TC不支持无返回值的函数,如果你不需要返回值,就返回true好了。
4.在调用函数时,采用空间名.函数名(参数列表)的形式。注意!空间名是必须的,即便是同一命名空间内的函数,空间名也不能省略!

流程控制语句

if语句

语法:

  1. if (条件)
  2.     语句1
  3. [else
  4.     语句2]
  5. endif
复制代码
说明:
if语句支持嵌套,但是没有elseif/else if这种语法。


select语句(就是C语言的switch语句)
语法:

  1. select (表达式)
  2.     case 常量表达式1:
  3.         语句1
  4. [   case 常量表达式2:
  5.         语句2
  6.     ...
  7.     case 常量表达式n:
  8.         语句n]
  9. [   default:
  10.         默认语句]
  11. endselect
复制代码
说明:
1.与C语言不同,在TC中case语句之间不需要用break隔开。
2.与C语言不同,表达式可以是数字以外的类型,如字符串、布尔型等。
3.即使没有case和default也不会报错,但那样就不合乎逻辑了。

while语句
语法:

  1. while (条件)
  2.     语句
  3. endwhile
复制代码
说明:
只要条件为真就一直循环,所以呢,要小心死循环哦。

repeat语句
语法:

  1. repeat (执行次数n)
  2.     语句
  3. endrepeat
复制代码
说明:
将包含的语句执行指定次数。注意,这里的执行次数n只能是正整数常量。
反正是限制多多,据说下一个版本已经把repeat去掉了,新增了一个for语句。


continue和break语句
说明:
TC支持这两条语句,其他的我就不多废话了。


数组
语法:

  1. {int|double|bool|string}[] 一维数组 = {int|double|bool|string}[维数]
  2. {int|double|bool|string}[][] 二维数组 = {int|double|bool|string}[维数][维数]
  3. {int|double|bool|string}[][][] 三维数组 = {int|double|bool|string}[维数][维数][维数]
复制代码
说明:
1.TC目前支持到三维数组。
2.TC支持动态数组。
3.数组下标从零开始计算。
4.数组可以用于函数的参数和返回值。
5.数组用于函数的参数时默认为值传递。

注释
说明:
TC只支持行注释(//),如果需要对一大段代码进行注释,最好使用编辑里的注释功能按钮。

预处理指令
#include用于包含其他文件中的代码,支持相对路径。
#import用于导入COM插件接口。





回复

使用道具 举报

发表于 2012-9-23 20:51:33 | 显示全部楼层
不错
回复 支持 反对

使用道具 举报

发表于 2012-9-24 06:09:54 | 显示全部楼层
好很好非常好
回复 支持 反对

使用道具 举报

发表于 2012-9-24 08:44:10 | 显示全部楼层
感谢分享,又学到了一些。
回复 支持 反对

使用道具 举报

发表于 2012-9-24 09:41:08 | 显示全部楼层
支持!
回复 支持 反对

使用道具 举报

发表于 2012-9-24 15:51:21 | 显示全部楼层
挺全的
回复 支持 反对

使用道具 举报

发表于 2012-10-13 22:07:45 | 显示全部楼层
加油1~!~~
回复 支持 反对

使用道具 举报

发表于 2012-10-20 11:16:07 | 显示全部楼层
英文看不懂
回复 支持 反对

使用道具 举报

发表于 2012-11-1 11:53:25 | 显示全部楼层
支持
回复 支持 反对

使用道具 举报

发表于 2012-12-7 06:29:13 | 显示全部楼层
英文的看着头大。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-3 02:59 , Processed in 0.046253 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表