问题列表 - 第30344页

如何在规范中描述JSON数据?

在规范中描述JSON数据的最佳方法是什么?

在过去,我使用了'罗嗦'描述的例子,但感觉不精确.

似乎有一个新生的JSON模式标准,但它看起来不像一个非常活跃的项目.还有其他方法吗?


(更新)在考虑了好几天后,我喜欢使用转换约定的bmargulies建议.由于本案例中的JSON文档是.NET Web服务的出现,我将简单地用C#类语法记录模式.这可能不是非常严格,但所涉及的每个人都会理解它,并结合示例将尽快传达信息.

json

40
推荐指数
3
解决办法
2万
查看次数

Clojure中的相互递归定义

如何在Clojure中进行相互递归定义?

下面是Scala中的代码,用于查找使用递归定义的素数:

val odds: Stream[Int] = cons(3, odds map { _ + 2 })
val primes: Stream[Int] = cons(2, odds filter isPrime)
def primeDivisors(n: Int) =
    primes takeWhile { _ <= Math.ceil(Math.sqrt(n))} filter { n % _ == 0 }
def isPrime(n: Int) = primeDivisors(n) isEmpty

primes take 10
Run Code Online (Sandbox Code Playgroud)

我把它翻译成Clojure:

(def odds (iterate #(+ % 2) 3))
(def primes (cons 2 (filter is-prime odds)))
(defn prime-divisors [n]
    (filter #(zero? (mod n %)) 
        (take-while #(<= % (Math/ceil (Math/sqrt n))) 
            primes)))
(defn …
Run Code Online (Sandbox Code Playgroud)

recursion clojure definition

6
推荐指数
2
解决办法
2274
查看次数

ISerializable:在反序列化时分配现有对象

我们的任务非常简单,我们有一个对象图,其中每个对象(IDItem)都有一个唯一的ID.对象图在客户端和服务器计算机上存在两次.

现在我们将一些可序列化的命令传递给服务器.该命令具有一些IDItem作为字段.IDItems实现ISerializable接口,只将它们的ID存储在SerializationInfo中.喜欢:

// The method called when serializing a IDItem.
void GetObjectData(SerializationInfo info, StreamingContext context)
{
    // Instead of serializing this object, just save the ID
    info.AddValue("ID", this.GetID());
}
Run Code Online (Sandbox Code Playgroud)

问题是,我们如何将现有对象分配给反序列化器创建的实例?显然,ISerializable构造函数中的以下内容不起作用,因为'this'标识符是只读的:

//does not work   
protected IDItem(SerializationInfo info, StreamingContext context)
{
    this = GlobalObject.GetIDItem(info.GetString("ID"));
}
Run Code Online (Sandbox Code Playgroud)

那么任何想法我们如何将现有对象分配给反序列化对象?

最诚挚的问候,thalm

c# serialization iserializable

4
推荐指数
1
解决办法
981
查看次数

LINQ在哪里查询不同派生类的集合

我有一组来自同一父级的不同对象.

如何从包含混合类型的集合中提取特定类型的对象

例如

public class A {}
public class B : A {}
public class C : A {}
Run Code Online (Sandbox Code Playgroud)

该集合将包含B和C类型的对象

我在那里只需要帮助填写'[]'位

var x = from xTypes in xCollection where '[type of object is type B]' select xTypes;
Run Code Online (Sandbox Code Playgroud)

谢谢.

linq

1
推荐指数
1
解决办法
1342
查看次数

无法在Android中使用清单中定义的targetSdkVersion的新资源标识符

我正在开发一个Android应用程序,我想与1.5兼容(SDK版本4).我正在测试2.2上的应用程序(SDK版本8).为此,我在清单文件中包含了该行

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8" />
Run Code Online (Sandbox Code Playgroud)

我认为这将允许我使用最新的清单元素和API,但每当我尝试使用它时,我都会遇到编译错误.例如,我尝试定义元素installLocation以允许应用程序安装在SD卡上,但Eclipse给了我错误

在'android'包中找不到属性'installLocation'的资源标识符

为了让它发挥作用,还有什么我需要做的吗?如果我不能让这个工作,定义有什么好处targetSdkVersion

android

5
推荐指数
1
解决办法
5671
查看次数

为什么Enum.GetValues()在使用"var"时会返回名字?

有谁能解释一下?

替代文字http://www.deviantsart.com/upload/g4knqc.png

using System;

namespace TestEnum2342394834
{
    class Program
    {
        static void Main(string[] args)
        {
            //with "var"
            foreach (var value in Enum.GetValues(typeof(ReportStatus)))
            {
                Console.WriteLine(value);
            }

            //with "int"
            foreach (int value in Enum.GetValues(typeof(ReportStatus)))
            {
                Console.WriteLine(value);
            }

        }
    }

    public enum ReportStatus
    {
        Assigned = 1,
        Analyzed = 2,
        Written = 3,
        Reviewed = 4,
        Finished = 5
    }
}
Run Code Online (Sandbox Code Playgroud)

c# enums anonymous-types

28
推荐指数
2
解决办法
1万
查看次数

设置onmessage处理程序时与web worker的竞争条件?

请考虑以下代码以及此Mozilla教程"使用Web worker"中的说明:

var myWorker = new Worker('my_worker.js');
myWorker.onmessage = function(event) {
  print("Called back by the worker!\n");
};
Run Code Online (Sandbox Code Playgroud)

此示例中的第1行创建并开始运行工作线程. 第2行将worker的onmessage处理程序设置为当worker调用自己的postMessage()函数时调用的函数.

线程在调用Worker构造函数时启动.我想知道在设置onmessage处理程序时是否存在竞争条件.例如,如果Web工作者在设置onmessage之前发布消息.

有人知道更多吗?

更新:

Andrey指出,Web工作者应该在收到消息时开始工作,就像Mozilla教程中的Fibonacci示例一样.但是,这不会在Web工作者中设置onmessage处理程序时创建新的竞争条件吗?

例如:

主要脚本:

var myWorker = new Worker('worker.js');
myWorker.onmessage = function(evt) {..};
myWorker.postMessage('start');
Run Code Online (Sandbox Code Playgroud)

Web worker脚本('worker.js')

var result = [];
onmessage = function(evt) {..};
Run Code Online (Sandbox Code Playgroud)

然后考虑以下执行路径:

main thread                                  web worker
var worker = new Worker("worker.js");
                                             var result = [];
myWorker.onmessage = ..
myWorker.postMessage('start');
                                             onmessage = ..
Run Code Online (Sandbox Code Playgroud)

可以省略" var result = [] …

html5 race-condition web-worker

5
推荐指数
1
解决办法
1434
查看次数

C++双运算符+

可能重复:
浮点数学不正确?
Float编译时计算没有发生?

奇怪的事情发生在今天,我即将失去它...

#include <iomanip>
#include <iostream>
using namespace std;

int main()
{
    cout << setprecision(14);
    cout << (1/9+1/9+4/9) << endl;
}
Run Code Online (Sandbox Code Playgroud)

此代码在MSVC 9.0 x64和x86以及GCC 4.4 x64和x86(默认选项和严格数学...)上输出0.据我记得,1/9+1/9+4/9 = 6/9 = 2/3 != 0

c++ math floating-point double

4
推荐指数
3
解决办法
1048
查看次数

使用每个base64字符的句子

我正在尝试构造一个句子/字母组合,它将返回每个base64字符,但未能找到单词测试的单词.

到目前为止,我所进行的单元测试未能触及处理+和/字符的行.虽然我可以直接在编码器/解码器上放置它们,但是有一个人类可读的源(相当于'快速的棕色狗'的base64)会很好.

base64

7
推荐指数
1
解决办法
2203
查看次数

如何将现有数据库和网站备份为MSDeploy包的一部分?

我正在研究使用Visual Studio 2010进行一键式部署,当前的部署过程涉及压缩IIS文件夹的内容并在完成剩余的手动部署步骤之前备份当前数据库.这允许我们回滚部署,如果不具体,我需要保留此过程的本质.

有没有办法使用MSDeploy实现自动化?

visual-studio-2010 msdeploy one-click-web-publishing

5
推荐指数
1
解决办法
2586
查看次数