我目前正在编写用Scala编写的API文档.我想包括几个图表,以使代码更容易理解.
我想知道在哪里放置资源(如图表),以便可以通过调用scaladoc自动导入它们,以及如何在代码文档中引用这些资源.
例如,让我们假设我使用sbt.我的代码位于src/main/scala目录中.以下是包的scala包对象的示例foo:
/**
* Provides main classes of the bar API.
*
* ==Overview==
* Main classes are depicted on the following diagram:
* <img src="path/to/diagram-foo.svg" />
*
*/
package object foo {
}
Run Code Online (Sandbox Code Playgroud)
'diagram-foo.svg'应该放在我的项目中以便scaladoc可见?随后,什么是正确的值path/to/的img标签?
我无法理解为什么我得到"推断类型参数不符合类型参数边界".首先,我定义了一个名为CS的特征,它可以由几个类(例如,CS01和CS02)实现:
trait CS[+T <: CS[T]] {
this: T =>
def add: T
def remove: T
}
class CS01 extends CS[CS01] {
def add: CS01 = new CS01
def remove: CS01 = new CS01
}
class CS02 extends CS[CS02] {
def add: CS02 = new CS02
def remove: CS02 = new CS02
}
Run Code Online (Sandbox Code Playgroud)
这个想法是在呼叫时add或remove在CS01和CS02上保持实现的类型.其次,我想定义可以在每个符合特征CS的类上执行的操作.然后,我定义了一个叫做的特征Exec(有两个非常简单的类例子Exec01和Exec02混合Exec特征):
trait Exec {
def exec[U <: CS[U]](x: U): U
}
class Exec01 extends Exec { …Run Code Online (Sandbox Code Playgroud) 我在语言C中有一个问题.考虑以下代码(这是一个最小的例子):
#include <stdio.h>
int f(int**, int*);
int main(int argc, char *argv[])
{
int *u = NULL, t1=0, t2=1;
u = &t1;
printf("t1 : %d\n", t1);
printf("t2 : %d\n\n", t2);
*u = 36;
printf("t1 : %d\n", t1);
printf("t2 : %d\n\n", t2);
*u = f(&u, &t2);
printf("t1 : %d\n", t1);
printf("t2 : %d\n\n", t2);
return 0;
}
int f(int** p, int* e){
*p = e;
return 24;
}
Run Code Online (Sandbox Code Playgroud)
当我运行此程序时,我得到以下结果:
t1 : 0
t2 : 1
t1 : 36
t2 : 1
t1 …Run Code Online (Sandbox Code Playgroud)