在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2883|回复: 7

[求助] skill 自定义函数 调用函数失败时,怎么打印函数正确调用的提示

[复制链接]
发表于 2015-9-6 13:54:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
请问skill自定义的带参函数,怎么在用户调用失败时,打印输出正确的调用方式反馈给用户。
发表于 2015-9-6 16:36:15 | 显示全部楼层
回复 1# 317443108

定义成可变参数,然后你在内部判断具体的调用是否是参数正确给予正确调用,还是参数错误,给出提示。
 楼主| 发表于 2015-9-6 23:17:26 | 显示全部楼层
回复 2# coffeeing520


    你好,请问能举个实际给我参考下吗。我定义的参数是@key的,关键点是不知道怎么判断调用是否正确,卡在这了。
发表于 2015-9-7 09:22:20 | 显示全部楼层
@key需要定义具体的参数名字,这个你限制了几个就几个了
@rest是传递一个list,个数不做限制,在里面做个数判断
procedure(sum(@rest args)
prog((sumR)
   if(length(args) == 2 && integerp(nth(0 args)) &&  integerp(nth(1 args)) then
      sumR = nth(0 args) + nth(1 args)
   else
      printf("you should give two integer for procedure c!\n")
   )
)
)
 楼主| 发表于 2015-9-7 13:23:11 | 显示全部楼层
回复 4# coffeeing520


   能不能处理这种情况:
   procedure(NewFunction(@key (args1 3) (args2 "hello") (args3 list("a" "b")))

   .....

  )

  用户调用的时候,并不知道@key的这些参数,

在输入NewFunction(“a”)时,给出提示


这种能实现吗?谢谢
发表于 2015-9-7 15:27:00 | 显示全部楼层
回复 5# 317443108

你只能迭代一次了 首先入口是什么都能调用,然后进来以后你再自己判断呀,procedure(funInterface()
        ...
        if(all_ok == 1 then
              newfunc(?args1 1 ...)
        )
)
发表于 2015-9-25 22:49:57 | 显示全部楼层
如果参数都是简单类型的,可以使用 skill 自带的类型检测功能:



  1. procedure( foo( s x "Sn")
  2. ...
  3. )


复制代码
定义一个两个参数的函数 foo,第一个参数的类型为 symbol 或 string,第二个为数值类型。

如果类型不是简单类型,比如某个参数应该为 cellViewID,可以使用 g 作为类型检测字符,再在函数体中检测它是不是一个cellViewID,不是则用 error 函数报错。
发表于 2015-9-29 11:11:08 | 显示全部楼层
使用errset、error、err 函数~
具体方法,查看相关pdf~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 12:25 , Processed in 0.024016 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表