第八课,T语言功能和参数(版本5.0)

时间:2022-10-05 09:19:45

功能的理解

功能是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