11 这个函数等价于调用 lu a_yieldk, 不同的是不提供延续函数(参见。 因此,当线程被延续,线程会继续运行调用 l ua_yield 函数的函数。
让出协程(线程)。
12 当 C 函数调用了 lu a_yieldk, 当前运行的协程会挂起, 启动这个线程的 l ua_resume 调用返回。 参数 nresults 指栈上需返回给 l ua_resume 的返回值的个数。
当协程再次被延续时, L ua 调用延续函数 k 继续运行被挂起(参见)的 C 函数。 延续函数会从前一个函数中接收到相同的栈, 栈中的 n 个返回值被移除而压入了从 lu a_resume 传入的参数。 此外,延续函数还会收到传给 lu a_yieldk 的参数 ctx。
13 通常,这个函数不会返回; 当协程一次次延续,将从延续函数继续运行。 然而,有一个例外: 当这个函数从一个逐行运行的钩子函数(参见) 中调用时,lu a_yieldk 不可以提供延续函数。 (也就是类似 l ua_yield 的形式), 而此时,钩子函数在调用完让出后将立刻返回。 L ua 会使协程让出,一旦协程再次被延续, 触发钩子的函数会继续正常运行。
14 当一个线程处于未提供延续函数的 C 调用中,调用它会抛出一个错误。 从并非用延续方式(例如:主线程)启动的线程中调用它也会这样。
l ua_getinfo
int lua_getinfo (lua_State L, const char what, lua_Debug ar);
返回一个指定的函数或函数调用的信息。
15 当用于取得一次函数调用的信息时, 参数 ar 必须是一个有效的活动的记录。 这条记录可以是前一次调用 lu a_getstack 得到的, 或是一个钩子 (参见 )得到的参数。
用于获取一个函数的信息时, 可以把这个函数压入堆栈, 然后把 what 字符串以字符 '>' 起头。 (这会让 l ua_getinfo 从栈顶上d出函数。) 例如,想知道函数 f 是在哪一行定义的, 你可以使用下列代码:
lu a_getlocal
const char lu a_getlocal (lua_State L, const lua_Debug ar, int n);
16 从给定活动记录或从一个函数中获取一个局部变量的信息。
对于第一种情况, 参数 ar 必须是一个有效的活动的记录。 这条记录可以是前一次调用 lua_getstack 得到的, 或是一个钩子 (参见)的参数。 索引 n 用于选择要检阅哪个局部变量; 参见 debuggetlocal 中关于变量的索引和名字的介绍。
lu a_getlocal 将变量的值压栈,并返回其名字。
17 对于第二种情况,ar 必须填 NULL 。 需要探知的函数必须放在栈顶。 对于这种情况,只有 Lua 函数的形参是可见的 (没有关于还有哪些活动变量的信息) 也不会有任何值压栈。
当索引大于活动的局部变量的数量, 返回 NULL (无任何压栈)
lu a_getstack
int lu a_getstack (lua_State L, int level, lua_Debug ar);
获取解释器的运行时栈的信息。
18 这个函数用正在运行中的指定层次处函数的 活动记录 来填写 lu a_Debug 结构的一部分。 0 层表示当前运行的函数, n+1 层的函数就是调用第 n 层 (尾调用例外,它不算在栈层次中) 函数的那一个。 如果没有错误, lua_getstack 返回 1 ; 当调用传入的层次大于堆栈深度的时候,返回 0 。
API 呀,你说中文我差点没听出来。
最简单的你封装一个打印 helloworld的api。
/对外的API接口,使用者调用接口的print方法,无需关系具体的实现。
可以多个其他类都实现接口,并且表现出不同的行为。而调用者并不需要知道这些,就可以正常使用。
@author Cui
/
interface HelloWorld{
void print();
}
/
接口的具体实现
@author Cui
/
class HelloWorldImpl implements HelloWorld{
public void print(){
Systemoutprintln("Hello World");
}
}
/
调用者
@author Cui
/
class Others{
public static void main(String[] args) {
HelloWorld hw=new HelloWorldImpl();//声明是一个接口引用
hwprint();
}
}
API 的意思就是。一个已经解决的问题,别人已经写好方法。你只需要调用别人写好的类就行了。比如你要造一辆车,轮胎已经有人帮你造好了,你直接使用轮胎,组合各种已有东西,再加上自己的东西就行了。你无需再造一个轮子。
JAVA接口中方法会加上public abstract。
当然,你也可以手动在前面加一个public
接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部 *** 作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。
人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口。
在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行 *** 作的人之间,也可以是它们的结合。
用户接口,由一套刻度盘、球形把手、 *** 作系统命令、绘图显示形式和其它装置组成,这些设置允许用户使用计算机或者程序通信。一个图形用户界面(GUI)提供给他的用户或多或少的"画图导向"方法。对于计算机系统而言,GUI通常是一个较令人满意的或者用户友好的界面。
程序接口,由一套陈述、功能、选项、其它表达程序结构的形式、以及程序师使用的程序或者程序语言提供的数据组成。
自然的、合理的、支持任何设置到连接器或者到其它设备的附加装置。
作为动词,interface意味着与另一个人或者物体的通话。和硬件设备一起,接口指生成一个合适的物理连接以至于两个设备能够通话或者有效合作。
要看出现的是哪种异常了。如果是使用某些定义好的函数,并且函数本身会产生异常处理方法一般两种:1自己用try{}catch(){}语句捕获异常并处理。2在定义接口的后面写上throw
Exception。把异常抛出让使用接口的人处理异常。两种方法都可以。。但如果是RuntimeException异常,那就是自己程序某些地方写错了,那你就必须找到并修改程序。
以上就是关于计算机中程序接口类函数有哪些全部的内容,包括:计算机中程序接口类函数有哪些、java应用程序编程接口是什么、接口中的方法可以使用哪些修饰符等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)