功能的理解

功能是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. C++11带来的优雅语法

    C++11带来的优雅语法 自动类型推导 auto auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型.通过auto的自动类型推导,可以简化我们的编程工作; auto是在编译时对变量进行了 ...

  2. .NET IL学习笔记(一)

    参考资料: 1. <.NET IL Assembler> 2. NGEN代码产生器 3. NGEN的使用 4. IL编辑器下载 5. IL编辑器的使用 知识点: ● Common Lang ...

  3. java高薪之路__009_网络

    1. InetAddress类2. Socket: IP地址和端口号的结合,socket允许程序把网络连接当成一个流,数据在两个socket间通过IO传输, 通信的两端都要有socket. 主动发起通 ...

  4. PHP 小方法之 随机生成几位字符串

    if(! function_exists ('get_rand_string') ) { function get_rand_string($len=6,$format='ALL') { switch ...

  5. java mail发送邮件

    最近做了自动发送邮件功能,带附件的:需要的jar包有

  6. 与Status Bar和Navigation Bar相关的一些东西

    Android Navigation Bar Status Bar   与StatusBar和NavigationBar相关的东西有两种,一是控制它们的显示与隐藏,二是控制它们的透明与否及背景. 在2 ...

  7. Linux下使用autoconf 和 automake 编译简单的HelloWorld

    使用过开源C/C++项目的同学都知道,标准的编译过程已经变成简单的三部曲:./configure /make/make install,使用起来很方便,不像平时自己写代码,要手写一堆复杂的makefi ...

  8. yii2-basic后台管理功能开发之一:引入模板

    前景:哎没想到用php的yii2框架写了官网……自己选择的框架,跪着也要码完,当年用yii2-basic搭建了官网,原是想偷懒的,没想到还要写后台.... 需求:实现一个可编辑页面图片及新闻内容的后台 ...

  9. 如何在CentOS 7上安装Percona服务器

    在这篇文章中我们将了解关于 Percona 服务器,一个开源的MySQL,MariaDB的替代品.InnoDB的数据库引擎使得Percona 服务器非常有吸引力,如果你需要的高性能,高可靠性和高性价比 ...

  10. 动态监控驱动、dll、exe加载

    /* windows2003 x86/x64 window7 x86 windows2008 R2 x64测试通过 */ #include <ntddk.h> #include " ...