TC官方合作论坛

标题: 功能参数详解 [打印本页]

作者: Abin    时间: 2013-9-10 12:02
标题: 功能参数详解
在TC里面,功能的参数有如下几种形式:

1、无参数功能
  1. 功能 测试()
  2. 功能结束
复制代码
无参功能:测试()功能没有参数,那么在调用的时候,就不需要传入值。

2、有参数功能,但是没有默认值与引用传参
  1. 功能 测试(参数1,参数2)
  2. 功能结束
复制代码
有参功能:测试()功能有2个参数,那么在调用测试功能时,需要传入2个参数。

3、有默认参数的功能
  1. 功能 测试(参数1,参数2=0)
  2. 功能结束
复制代码

测试功能有2个参数,第1个是参数没有默认值,第2个参数带默认值,那么在调用这样方法的时候,既可以省略第2个参数,只传一个参数,也可以写2个参数传入如上的调用方法有下面2种,其效果是一样的。
我的空间.测试(100)// 程序会使用默认值处理
我的空间.测试(100,0) // 程序不使用默认值,而使用传入的值,只是值于默认值相等。
注意:如果参数中某个参数设置了默认值,那么这个参数后面的所有参数都必须设置默认值,否则在编译的时候,编译器会提示你参数错误如下的写法是错误的:

  1. 功能 测试(参数1,参数2=0,参数3,参数4)
  2. 功能结束
复制代码

上面的错误代码修改下就正确了。
  1. 功能 测试(参数1,参数2=0,参数3=0,参数4=1)
  2. 功能结束
复制代码


4、引用传参的功能

引用传参的概念来自C++的语法,它的作用在于:传入参数的值会在功能里被修改,而这个修改不会因为功能结束而变化,但是非引用的参数在功能里无法修改的。
在功能需要返回多个参数时,我们可以使用这个方法来实现。
如下:

  1. 空间 我的程序
  2. 功能 引用传值(&A,&B)// 引用传参
  3.   A=A*2   
  4.   B=B*4   
  5.   返回 0   
  6. 功能结束

  7. 功能 普通传值(A,B)// 非引用传参
  8.   A=A*2   
  9.   B=B*4   
  10.   返回 0   
  11. 功能结束

  12. 功能 开始_点击()   
  13.   A=10,B=15   
  14.   我的程序.引用传值(A,B// 因为是引用传参,那么AB的值会发生改变
  15.   辅助.消息框(辅助.消息框(A&"和"&B) )//输出20和60
  16.   返回 真   
  17. 功能结束

  18. 功能 退出_点击()   
  19.   A=10,B=15   
  20.   我的程序.普通传值(A,B)// 因为是非引用传参,那么AB的值不会发生改变
  21.   辅助.消息框(A&"和"&B)//输出10和15
  22.   返回 真
  23. 功能结束

  24. 空间结束
复制代码





作者: fupinggui    时间: 2013-9-10 18:38

作者: TC。梁子    时间: 2013-9-13 00:48
回复 1楼Abin的帖子

我想问个问题,怎么用易语言写TC调用的插件?有例子吗?
作者: qingyangdi    时间: 2013-11-27 15:24
问个问题!!
就是第4小节24行
不应该是A=10,B=15 没有用吗?
功能 普通传值(A,B)
直接就运行 A=A*2
                B=B*2
因为A,B是字母 不是一个数 所以A*2无意义
输出是 A和B
作者: Abin    时间: 2013-11-27 17:26
qingyangdi 发表于 2013-11-27 15:24
问个问题!!
就是第4小节24行
不应该是A=10,B=15 没有用吗?

A和B是变量,怎么会没用呢。。你对变量还不理解,请看看变量的帖子!

变量与常量
http://bbs.tyuyan.com/forum.php? ... 0635&fromuid=16
(出处: TC论坛)

作者: qingyangdi    时间: 2013-11-28 10:50
哈哈  
看懂了

应该是A=A*2
这个步骤  因为 是普通传值  不管A=什么样的运算  A就是A
是不会发生改变的

万分感谢
作者: qingyangdi    时间: 2013-11-28 11:00
等等 如果是这样的话
那么 功能  普通传值这个功能是不是里面不管是什么运算 最后的结果
都是A=10,B=15

在功能 退出 里 已经说明了 A,B的值
而且辅助.消息框 也在功能 退出  里
也就是 普通传值 这个功能有没有
最后的 消息框 都是A=10,B=15
--------------------------------------------------------
那么请问 普通传值 这个功能的意义 是什么呢

额 为了给我们演示

还是在实际运用中,是会用到的

等等  , 普通传值,在功能里不会发生改变
有什么用呢 .......................
如果 这样写  
------------
鼠标.移动(A+2,B+13)
-----------
他们是不是会移动到12 ,28
这个位置  

我去试试
作者: qingyangdi    时间: 2013-11-28 11:04
YES  
可以  
嗯  
作者: qingyangdi    时间: 2013-11-28 11:06
本帖最后由 qingyangdi 于 2013-11-28 11:08 编辑

哈  其实就是我写的代码
一开始我没说在空间里 声明 变量A,B
说语法错误
后来我声明了就可以了
问 你的这个第四小节的代码 能运行吗?
你一开始没声明 变量 A,B
下面是我的代码
我去试试你第四小节的代码
————————————————————————-、
空间 鼠标移动
变量 A,B

功能 开始_点击()
   
    A=0,B=0
    鼠标移动.鼠标()
功能结束

//默认空间
功能 鼠标()
    鼠标.移动(A+200,B+200)
    辅助.等待(2000)
    鼠标.移动(A+400,B+400)
功能结束
//开始按钮_点击操作

//退出按钮_点击操作
功能 退出_点击()
   
    辅助.退出()
功能结束

空间结束

作者: qingyangdi    时间: 2013-11-28 11:24
我去试了一下  复制你的代码 修复了一个地方后
能运行,但是,我点击“开始”按钮 没反应
我自己照着你的写了一遍   运行正常

作者: qingyangdi    时间: 2013-11-28 11:27
嘿嘿
再问个问题
----------------------
返回 0
---------------
是什么意思
我理解为 -1 为真 0为假
可是我去百度了一下
有人说 0 是释放内存什么的
还有
返回 真
这句话什么意思
是不是 说 ,这个程序有返回值
返回 假  的话就是这个程序没有返回值
作者: qingyangdi    时间: 2013-11-28 11:29
对了  还有那个变量 为什么 你没声明 都可以用呢
作者: qingyangdi    时间: 2013-11-28 11:29
Abin 发表于 2013-11-27 17:26
A和B是变量,怎么会没用呢。。你对变量还不理解,请看看变量的帖子!

变量与常量

额我又有问题了
作者: qingyangdi    时间: 2013-11-28 16:19
我知道我错在哪里了
我没有用引用传值
作者: slz336    时间: 2014-8-26 13:34

这个帖子得顶
作者: maotcmao    时间: 2014-10-10 13:07
大胖斌




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1