这是一些上下文:我正在进行一项分配,以折叠存储半边数据结构的网格中的边.这是直接相关的代码.
System.out.println("Initial Size: " +heds.faces.size());
if (! heds.faces.remove(currentHE.twin.leftFace));
{
System.out.println("We have a twin problem");
//this will always print
}
// Yet this will always be 1 less than the initial
System.out.println("After twin removal: " +heds.faces.size());
if ( !heds.faces.remove(currentHE.leftFace))
{
System.out.println("We have a problem");
}
System.out.println("Third: " +heds.faces.size());
Run Code Online (Sandbox Code Playgroud)
所以问题是"我们有一个双胞胎问题"总是打印,但它不应该,"双胞胎去除后"总是比初始尺寸小一个.
如果您觉得需要,这是剩下的信息.heds在类"HEDS"(半边数据结构)中定义:
public HEDS( PolygonSoup soup ) {
HalfEdge potentialTwin;
HalfEdge[] currHalfEdges;
Vertex curr, next;
for (int[] face : soup.faceList)
{
currHalfEdges = new HalfEdge[face.length];
for (int i = 0; i < face.length; …Run Code Online (Sandbox Code Playgroud) 我正在Go中构建一个JSON API,我想以json的形式返回错误响应.
响应示例:
{
"error": "Invalid request syntax"
}
Run Code Online (Sandbox Code Playgroud)
我认为我可以创建一个实现错误接口的包装器结构,然后使用Go的json marshaler作为一种干净的方式来获取错误的json表示:
type JsonErr struct {
Err error `json:"error"`
}
func (t JsonErr) Error() string {
return t.Err.Error()
}
Run Code Online (Sandbox Code Playgroud)
这只会编组一个JsonErr {"error":{}},有没有办法使用默认的Go json编组器来编码这个结构,或者我是否需要为JsonErr结构编写一个快速的自定义MarshalJson?
我正在尝试以秒精度打印ISO-8601中的时间.YYYY-MM-DDTHH:MM:SS.S
这是我的代码:
#include <sys/time.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void milli_time(char* dest, struct timeval* t)
{
struct tm* timeInfo;
strftime(dest, 22, "%Y-%m-%dT%t", localtime(&t->tv_sec));
printf("%s\n", dest);
fflush(stdout);
char deciTime[3];
sprintf(deciTime, ".%lu", ((t->tv_usec)/100000ul));
strcat(dest, deciTime);
}
int main()
{
struct timeval* theTime;
char timeString[32];
gettimeofday(theTime, NULL);
printf("%lu.%lu\n", theTime->tv_sec, theTime->tv_usec);
milli_time(timeString, theTime);
printf("%s\n", timeString);
fflush(stdout);
}
Run Code Online (Sandbox Code Playgroud)
每次运行它的输出是:
134520616.3077826840
1974-04-06T17:50:16
1974-04-06T17:50:16.30778
Run Code Online (Sandbox Code Playgroud)
我注意到的另一件事是tv_usec超过一百万.