我需要比较两个表示json对象的字符串。为了进行测试,我需要一种比较这些字符串的方法,不仅要忽略子元素的顺序(这很常见),而且要忽略jsons数组属性中的元素顺序。即:
group: {
id: 123,
users: [
{id: 234, name: John},
{id: 345, name: Mike}
]
}
Run Code Online (Sandbox Code Playgroud)
应该等于:
group: {
id: 123,
users: [
{id: 345, name: Mike},
{id: 234, name: John}
]
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,我需要一些javascript lib,但是也欢迎使用其他方法。
偶尔,我在我的程序代码的一个地方写了一个拼写错误:
int a = 10;
char* b = new char(a);
Run Code Online (Sandbox Code Playgroud)
错误是显而易见的:我写了()而不是[].奇怪的是...代码编译好了,它在调试器中运行确定.但是在执行这些行的函数之后,在调试器之外编译的.exe崩溃了一会儿.
第二行代码真的合法吗?如果是,那对编译器意味着什么?
我在Apache中使用SetEnv来设置我在PHP中使用恢复的虚拟主机中的一些变量$_SERVER[the_variable]
.
现在我转而使用Perl Catalyst和Nginx,但似乎Nginx中的"env"指令并不相同.这是行不通的.如何实现?
这是背景图片,以防万一有人可以建议更好的方法或我以前的系统不能与Nginx一起使用.
假设我有以下类来计算二次方程的解:
classdef MyClass < handle
properties
a
b
c
end
properties (Dependent = true)
x
end
methods
function x = get.x(obj)
discriminant = sqrt(obj.b^2 - 4*obj.a*obj.c);
x(1) = (-obj.b + discriminant)/(2*obj.a);
x(2) = (-obj.b - discriminant)/(2*obj.a);
end
end
end
Run Code Online (Sandbox Code Playgroud)
现在假设我运行以下命令:
>>quadcalc = MyClass;
>>quadcalc.a = 1;
>>quadcalc.b = 4;
>>quadcalc.c = 4;
Run Code Online (Sandbox Code Playgroud)
此时,quadcalc.x = [-2 -2]
.假设我quadcalc.x
多次调用而不调整其他属性,即quadcalc.x = [-2 -2]
每次我要求这个属性.被quadcalc.x
重新计算每一次,还是会只是"记住" [-2 -2]
而不是做:
using(MyDataContext db = new MyDataContext())
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
我想用Action()
public static class SimpleUsing
{
public static void DoUsing(Action action)
{
using(MyDataContext db = new MyDataContext())
{
//do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
哪个将用作
SimpleUsing.DoUsing(() =>
{
//but how to get DataContext variable?
}
Run Code Online (Sandbox Code Playgroud)
主要问题是如何访问"db"变量以使用DataContext?
让我们看看以下代码段中的简单Java代码:
public class Main {
private int temp() {
return true ? null : 0;
// No compiler error - the compiler allows a return value of null
// in a method signature that returns an int.
}
private int same() {
if (true) {
return null;
// The same is not possible with if,
// and causes a compile-time error - incompatible types.
} else {
return 0;
}
}
public static void main(String[] args) {
Main m = …
Run Code Online (Sandbox Code Playgroud) 我正在检查网络连接viewDidLoad
使用它:
-(BOOL)reachable {
ReachabilityDRC *r = [ReachabilityDRC reachabilityWithHostName:@"google.com"];
NetworkStatus internetStatus = [r currentReachabilityStatus];
if(internetStatus == NotReachable) {
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
但是我也希望在网络发生变化时收到通知,例如wifi掉线或wifi恢复,所以我可以相应地进行更改.
如何调整我的方法来做那样的事情?
我正在使用日期格式为"yyyy-mm-dd"的Javascript Date(字符串)构造函数.除非应用程序在运行IIS的测试VM上运行,否则构造函数在IE 9和Firefox中运行良好.如果它在VM上,在IE 9中它返回'NaN',但仍然在Firefox中正常工作.
var dateAsString = "2011-11-09";
var dateCreated = new Date(dateAsString);
Run Code Online (Sandbox Code Playgroud)
我假设服务器与客户端Javascript无关.有什么建议?
在重构一些代码时,我遇到了这个奇怪的编译错误:
构造函数调用需要动态调度,但不能因为它是构造函数初始值设定项的一部分.考虑转换动态参数.
当尝试调用采用动态参数的基本方法/构造函数时,似乎会发生这种情况.例如:
class ClassA
{
public ClassA(dynamic test)
{
Console.WriteLine("ClassA");
}
}
class ClassB : ClassA
{
public ClassB(dynamic test)
: base(test)
{
Console.WriteLine("ClassB");
}
}
Run Code Online (Sandbox Code Playgroud)
如果我将参数转换为object
,它会起作用,如下所示:
public ClassB(dynamic test)
: base((object)test)
Run Code Online (Sandbox Code Playgroud)
所以,我有点困惑.为什么我必须把这个令人讨厌的演员 - 为什么编译器不能弄明白我的意思?
界面隔离原则只是单一责任原则的替代吗?
我认为,如果我的类满足SRP,则无需提取多个接口.
所以ISP看起来像解决方案,以防我们因某些原因打破SRP.
我对吗 ?
design-patterns single-responsibility-principle solid-principles interface-segregation-principle
.net ×2
c# ×2
javascript ×2
apache ×1
autoboxing ×1
c#-4.0 ×1
c++ ×1
catalyst ×1
cocoa-touch ×1
compare ×1
constructor ×1
date ×1
dynamic ×1
equals ×1
iis ×1
interface-segregation-principle ×1
iphone ×1
java ×1
json ×1
jsonassert ×1
linq ×1
matlab ×1
new-operator ×1
nginx ×1
objective-c ×1
oop ×1
perl ×1
reachability ×1