情况有点奇怪,但请耐心听我说。我需要一种可以在C中轻松调用的脚本语言(不是cpp,C)。优选地,脚本函数可以作为常规的C函数来调用。我需要脚本语言来使用元组,这样我就可以编写类似下面的代码。把它放在我的废话里,我只想能返回元组。返回类型必须是ptr,并且所有输入都是void* (元组)、int或char*
myfunc(a, b, c, d) {
a.b = b
a.z = anotherFunc(b,c)
return a, d
}
myfunc2(z) {
a, d = z
return d+4, a+1
}
上下文:
我是java程序员,阅读叔叔。关于ISP接口隔离原则,我的理解是:
让我们有:
interface Service {
function doA();
}
class ServiceImpl implements Service {...}
class ServiceClient {
// ServiceImpl is injected; eg either through constructor or setter
private Service service;
function useOnlyDoA() {
service.doA();
}
}
现在
我有一个程序,它调用子例程,然后子例程再调用一个函数。我被Fortran对函数类型声明的要求弄糊涂了。我已经在函数中声明了类型(即实函数foo(...)),无论我是否在子例程声明部分中声明函数,程序都会正常工作。
我的具体问题是,在子例程中声明函数不会在将来导致意外的行为吗?我也看到了接口块,想知道这是否也是必要的。
更广泛地说,我也感兴趣的是Fortran在“幕后”做了什么,以及为什么声明函数或使用接口块或多或少很重要。
编辑:一些示例代码:
program foo
real :: a,b,c
call bar(a,b,c)
end program foo
subroutine
我有一个接口,而不是IDisposable,它有一个方法void Dispose()。我想在C++/CLI中实现这个接口。看来我做不到。我试过了
virtual void Finish() = IThing::Dispose
{}
但这带来了一些错误:
1>...: error C2039: 'Dispose': is not a member of '...IThing'
1>...: error C3653: 'Dispose': cannot be used as a named override: a fun
如何在下面实现此功能
public T myFunction(Function<T> func) //T is the return type
{
//...some code
return func();
}
我可以像下面这样使用函数,并且不需要在myFunction中声明参数a、b、c
myType result = myFunction(() -> doSomething(a, b , c))