功能的理解

功能是TC移动项目应用的基本模块,通过对功能模块的调用实现特定的功能.TC综合开发工具中的功能相当于其它高级语言的子程序,在其他高级语言中,比如C,C++中,称为函数.允许用户建立自己定义的功能用户可把自己的算法编成一个个相对独立的功能模块,然后用调用的方法来使用功能可以说TC移动应用的全部工作都是由各式各样的功能完成的,所以也把TC语言称为功能式语言.

由于采用了功能模块式的结构,TC语言易于实现结构化程序设计使程序的层次结构清晰,便于程序的编写、阅读、调试.

(关键字,function,end)

从功能定义的角度看,功能可分为库功能(API)和用户定义功能两种.

1、库功能(API):由TC综合开发工具提供,用户无须定义,也不必在程序中定义,可以在程序中直接调用.

2、用户自定义功能:由用户按需要写的功能对于用户自定义功能,不仅要在程序中定义功能本身,而且在调用的时候,直接写函数名

自定义功能的分类:

第一:根据功能函数有无参数分为:无参数功能与有参数功能.

无参数功能:

function 测试()
end

无参功能:功能定义、功能说明及功能调用中均不带参数主调功能和被调功能之间不进行参数传送.

有参数功能:

function 测试(参数1,参数2)
end

参数的个数可以有多个,用户自己根据需要使用但是一般建议不要超过10个.

有参功能:也称为带参功能在功能定义及功能说明时都有参数,称为形式参数(简称为形参).在功能调用时也必须给出参数,称为实际参数(简称为实参).进行功能调用时,主调功能将把实参的值传送给形参,供被调功能使用.

第二:根据有无返回语句分为:有返回值功能和无返回值功能.

有返回值语句的功能:

function 获取姓名()
返回 "张三"
end

  这样程序在调用这个获取姓名的功能后,就可以获取到这个功能的返回值"张三".

无返回语句的功能:

function 获取姓名()
var 姓名="张三"
end

  这个没有返回语句,那么在调用这个功能的时候,只能单独的调用功能,而不能像有返回值的那样去使用.

在功能的调用时,我们只能掌握以下几点就可以很多的调用了.

1、明白功能的作用,之后使 功能名()的格式进行调用.

2、明确功能的参数个数、各个参数的类型以及作用,之后按照参数的格式传入相应参数即可.

3、确定功能是否有返回值,没有则直接调用方法即可如果有返回值则确定返回值的作用,需要返回值做处理则使用变量存储返回值,不需要返回值就可以像无返回值那样直接调用即可.

掌握这几点,基本上可以熟练的使用功能了.

功能参数详解

在TC综合开发工具里面,功能的参数有如下几种形式:

1、无参数功能

function 测试()
end

     无参功能:测试()功能没有参数,那么在调用的时候,就不需要传入值。

2、有参数功能,但是没有默认值与引用传参

function 测试(参数1,参数2)
end

        有参功能:测试()功能有2个参数,那么在调用测试功能时,需要传入2个参数。

3、有默认参数的功能

function 测试(参数1,参数2=0)
end

  测试功能有2个参数,第1个是参数没有默认值,第2个参数带默认值,那么在调用这样方法的时候,既可以省略第2个参数,只传一个参数,也可以写2个参数传入如上的调用方法有下面2种,其效果是一样的。

测试(100)// 程序会使用默认值处理

测试(100,0) // 程序不使用默认值,而使用传入的值,只是值于默认值相等。

注意:如果参数中某个参数设置了默认值,那么这个参数后面的所有参数都必须设置默认值,否则在编译的时候,编译器会提示你参数错误如下的写法是错误的:

function 测试(参数1,参数2=0,参数3,参数4)
end

  上面的错误代码修改下就正确了。

function 测试(参数1,参数2=0,参数3=0,参数4=1)
end

  

4、引用传参的功能

引用传参的概念来自C++的语法,它的作用在于:传入参数的值会在功能里被修改,而这个修改不会因为功能结束而变化,但是非引用的参数在功能里无法修改的。

在功能需要返回多个参数时,我们可以使用这个方法来实现。

如下:

function 引用传值(&A,&B)// 引用传参
A=A*2
B=B*4
return 0
end function 普通传值(A,B)// 非引用传参
A=A*2
B=B*4
return 0
end function 按钮0_点击()
var A=10,B=15
引用传值(A,B)// 因为是引用传参,那么AB的值会发生改变
messagebox(A&"和"&B)//输出20和60
end function 按钮1_点击()
var A=10,B=15
普通传值(A,B)// 因为是非引用传参,那么AB的值不会发生改变
messagebox(A&"和"&B)//输出10和15
end

  

第八课,T语言功能和参数(版本5.0)的更多相关文章

  1. 潭州课堂25班:Ph201805201 第八课:函数基础和函数参数 (课堂笔记)

    1, 函数定义 def fun(): print('测试函数') fun() #调用函数 return 运行函数返回值 def fun(): name = [1,3,4,5] return name[ ...

  2. NeHe OpenGL教程 第四十八课:轨迹球

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  3. NeHe OpenGL教程 第三十八课:资源文件

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. NeHe OpenGL教程 第二十八课:贝塞尔曲面

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. NeHe OpenGL教程 第十八课:二次几何体

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. 【C语言探索之旅】 第一部分第八课:第一个C语言小游戏

    ​ 内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写 ...

  7. 【C语言探索之旅】 第二部分第八课:动态分配

    内容简介 1.课程大纲 2.第二部分第八课: 动态分配 3.第二部分第九课预告: 实战“悬挂小人”游戏 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言 ...

  8. 红帽学习笔记[RHCSA] 第八课[Nice值、时间同步、RPM与Yum软件安装]

    第八课 nice值 什么是nice值 给进程设置的优先级就是nice.nice的范围是-20~20.nice值越小占用的系统资源就越多,就是这个进程不nice. 如何查看nice值 # 使用top命令 ...

  9. Kali Linux Web 渗透测试视频教程— 第八课 nessus

    Kali Linux Web 渗透测试视频教程— 第八课 nessus 文/玄魂 视频课程地址:http://edu.51cto.com/course/course_id-1887.html 目录 n ...

  10. OpenGL学习进程(11)第八课:颜色绘制的详解

        本节是OpenGL学习的第八个课时,下面将详细介绍OpenGL的颜色模式,颜色混合以及抗锯齿.     (1)颜色模式: OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式. R ...

随机推荐

  1. Adobe Edge Animate CC 不再开发更新!

    Adobe Edge Animate CC停止开发更新! http://blogs.adobe.com/edge/2015/11/30/update-about-edge-tools-services ...

  2. Lucas定理

    Lucas' theorem In number theory, Lucas's theorem expresses the remainder of division of the binomial ...

  3. jquery validate 在ajax提交表单下的验证方法

    $(function() {  var method='${method }';  if(method == 'edit'){   url="${ctx}/commodity/typeReN ...

  4. JDBC连接执行MySQL存储过程报权限错误

    今天在测试项目的时候  突然就报了一个错出来. User does not have access to metadata required to determine stored procedure ...

  5. shader函数

    Intrinsic Functions (DirectX HLSL) The following table lists the intrinsic functions available in HL ...

  6. StringBuffer delete

    描述 java.lang.StringBuffer.delete() 方法将删除这个序列的一个子字符串中的字符. 子字符串的开始在指定的start和延伸处的字符索引end - 1或结束的序列,如果不存 ...

  7. python爬虫(1)

    了解python的基本语法后就可以开始了,边学边巩固. 学爬虫那什么是网络爬虫,以下是百度百科的定义:网络爬虫(又被称为网页蜘蛛,网络机器人, 在FOAF社区中间,更经常的称为网页追逐者),是一种按照 ...

  8. Android 图片圆角的设置

    ImageView的scaleType的属性有好几种,分别是matrix(默认).center.centerCrop.centerInside.fitCenter.fitEnd.fitStart.fi ...

  9. DOM创建和删除节点、HTML DOM常用对象[转]

    创建和删除节点:——核心DOM   1. 创建单个元素节点:3步:      1. 创建空元素节点对象:         var elem=document.createElement("标 ...

  10. 源代码tfs to git

    TFSàgit可以保留完整历史记录,方法: https://github.com/git-tfs/git-tfs 系统变量的path里加上: ;C:\Program Files (x86)\Git\b ...