小编for*_*ran的帖子

SQL插入语句中表名的别名

是否可以为我要插入值的表指定别名?

我想在嵌套查询中指定一个条件,表格太冗长了......

像转这样:

INSERT INTO my_table_with_a_very_long_name (col_a, col_b, col_c)
SELECT foo, bar, baz
FROM other_table
WHERE
  other_table.some_value > 
  (SELECT max(other_value) FROM my_table_with_a_very_long_name);
Run Code Online (Sandbox Code Playgroud)

进入这个:

INSERT INTO my_table_with_a_very_long_name AS t (col_a, col_b, col_c)
SELECT foo, bar, baz
FROM other_table
WHERE
  other_table.some_value > (SELECT max(other_value) FROM t);
Run Code Online (Sandbox Code Playgroud)

(显然我的情况更长,涉及更多参考)

sql database postgresql alias

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

C++最危险的特性是什么?

我听过很多次Bjarne Stroustrup的短语"C++让你更难以用脚射击自己;但是当你这样做时,它会把整条腿拉下来"而且我真的不知道它是否像它一样可怕声音.

在使用C++进行编程时,您遇到过的最糟糕的事情(或者更恰当地说,对您的软件来说)是什么?例如,哪种方式比普通C更危险?

c++ language-features

10
推荐指数
3
解决办法
2525
查看次数

删除Java中的多余转换

我一直在泛化一些使用大量演员表的Java代码,现在大多数都是冗余和不必要的.

检查代码的所有用法以删除它们可能非常繁琐,因此:是否有任何工具可以帮助识别(和删除)多余的强制转换?

java refactoring casting

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

为什么Javascript函数`arguments`不是node.js中的Array实例?

最近查看了很多NodeJS和Javascript代码,似乎参数不是Array的一个实例,但仍然表现得像一个,所以人们会做类似的东西,Array.prototype.slice.call(arguments, ...)或者[].slice.call(arguments)增加冗长,增加了新手理解等等的障碍.是否有原因参数不是Array的一个实例,或者这只是那些不好的部分?

javascript v8 node.js

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

禁用的JComboBox中更好的可读性/对比度

我有一个JComboBox需要在某些时候被禁用,但我觉得disabled状态使它更难阅读,因为它具有低对比度.

如果仅将下拉箭头按钮显示为已禁用,同时保持框渲染器就像启用它一样,那将是很好的.

实际: 实际的组合 期望: 期望的结果

有没有一种简单的方法来实现这个或类似的东西?

谢谢!

java swing visibility jcombobox disabled-control

10
推荐指数
4
解决办法
7548
查看次数

Python的波浪模拟

我想在三维空间中模拟一些具有吸收和反射的传播波.我想用python做.我应该使用numpy吗?我应该使用一些特殊的库吗?

我该如何模拟波浪?我可以使用波动方程吗?但是,如果我有反思怎么办?有更好的方法吗?我应该用矢量吗?但是当光线发散时,强度会降低.难.

提前致谢.

python simulation physics numpy wave

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

如何为遗留API /框架(C++宏与C++模板与代码生成器)实现大量复杂包装器?

我们使用VC6编译器在C++中实现的非常古老的遗留系统.现在我们正在重构代码.我们还切换到了VC9编译器.

我们使用外部专有框架,这也是遗留代码,而不是单元可测试的.为了使我们的代码单元可测试,我们为框架类引入了接口和包装器(提示:请参阅Martin Fowler的"使用遗留代码"):

在此输入图像描述

现在我们依赖于接口.包装器调用框架方法,我们可以愉快地在单元测试中使用模拟.

在这里,我们来解决我们的问题......

框架类包含许多需要包装和模拟的方法.为了实现这一目标,我们的供应商团队编写了一个API,它使用C++宏生成接口,包装器和模拟器实现.

包装头文件的示例:

class PlanWrapper : public IPlan
{
  // ... 
  WRP_DECLARE_DEFAULTS(FrameworkPlan); // macro
  WRP_DECLARE_CSTR_ATTR(FrameworkPlanLabel); // macro
  // ...
};
Run Code Online (Sandbox Code Playgroud)

宏WRP_DECLARE_CSTR_ATTR的定义如下:

#define WRP_DECLARE_CSTR_ATTR(AttrName) \
    virtual bool set##AttrName (LPCTSTR Value_in); \
    virtual bool get##AttrName (CString& Value_out); \
    virtual bool unset##AttrName (); \
    virtual bool isSet##AttrName ()
Run Code Online (Sandbox Code Playgroud)

包装器cpp文件的示例:

#include "StdAfx.h"

using namespace SomeNamespace;

WRP_IMPLEMENT_MODDICOM_DEFAULTS(FrameworkPlan)
WRP_IMPLEMENT_W_CSTR_ATTR (FrameworkPlan,FrameworkType1, FrameworkPlanLabel)
// ...
Run Code Online (Sandbox Code Playgroud)

宏WRP_IMPLEMENT_W_CSTR_ATTR的定义如下:

#define WRP_IMPLEMENT_W_CSTR_ATTR(ClassName,AtrTypeObj,AttrName) \
    bool ClassName##Wrapper::set##AttrName (LPCTSTR Value_in) { \
            AtrTypeObj aValue = Value_in; \
        FrameworkLink<ClassName> convertedObj …
Run Code Online (Sandbox Code Playgroud)

c++ macros templates code-generation legacy-code

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

ctypes内存管理:如何以及何时释放分配的资源?

我正在用Ctypes在Python中为C库编写一个小包装器,我不知道从Python分配的结构是否会在超出范围时自动释放.

例:

from ctypes import *
mylib = cdll.LoadLibrary("mylib.so")

class MyPoint(Structure):
    _fields_ = [("x", c_int), ("y", c_int)]

def foo():
    p = MyPoint()
    #do something with the point

foo()
Run Code Online (Sandbox Code Playgroud)

在foo返回后,这一点仍然"活着"吗?我必须打电话clib.free(pointer(p))吗?或者ctypes是否提供释放为C结构分配的内存的函数?

c python memory ctypes

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

Python ctypes:复制Structure的内容

我想用ctypes模仿Python中的一段C代码,代码类似于:

typedef struct {
  int x;
  int y;
} point;

void copy_point(point *a, point *b) {
  *a = *b;
}
Run Code Online (Sandbox Code Playgroud)

在ctypes中,不可能执行以下操作:

from ctypes import *

class Point(Structure):
  _fields_ = [("x", c_int),("y", c_int)]

def copy_point(a, b):
  a.contents = b.contents

p0 = pointer(Point())
p1 = pointer(Point())
copy_point(p0,p1)
Run Code Online (Sandbox Code Playgroud)

因为contents仍然是Python ctypes结构对象,它本身作为引用进行管理.

一个明显的解决方法是手动复制每个字段(表示为不可变的python int),但这不会扩展到更复杂的结构.此外,对于非基本字段而非结构化类型,需要递归地完成.

我的另一个选择是使用memmove和复制对象就像它们是缓冲区一样,但这似乎非常容易出错(因为Python是动态类型的,因此很容易将它与不同类型和大小的对象一起使用,导致内存损坏或分段故障)...

有什么建议?

编辑:

我也可以使用一个全新的结构副本,所以这可能有用:

import copy
p0 = Point()
p1 = copy.deepcopy(p0) #or just a shallow copy for this example
Run Code Online (Sandbox Code Playgroud)

但我不知道是否有某种奇怪的行为复制ctypes代理,好像它们是普通的Python对象......

python ctypes pointers copy

9
推荐指数
2
解决办法
8729
查看次数

Java泛型 - 实现像map这样的高阶函数

我决定用Java编写一些常见的高阶函数(map,filter,reduce等),这些函数通过泛型是安全类型的,并且我遇到了在一个特定函数中匹配通配符的问题.

为了完整,函子接口是这样的:

/**
 * The interface containing the method used to map a sequence into another.
 * @param <S> The type of the elements in the source sequence.
 * @param <R> The type of the elements in the destination sequence.
 */
public interface Transformation<S, R> {

    /**
     * The method that will be used in map.
     * @param sourceObject An element from the source sequence.
     * @return The element in the destination sequence.
     */
    public R apply(S sourceObject);
}
Run Code Online (Sandbox Code Playgroud)

令人不安的功能就像一个 …

java generics functional-programming wildcard matching

8
推荐指数
2
解决办法
3150
查看次数