小编Tom*_*Tom的帖子

使用React JS右键单击菜单

我想知道是否有最佳实践/正确方法为React组件设置右键菜单.

我目前有这个......

// nw is nw.gui from Node-Webkit
componentWillMount: function() {
    var menu = new nw.Menu();
    menu .append(new nw.MenuItem({
        label: 'doSomething',
        click: function() {
            // doSomething
        }
    }));

    // I'd like to know if this bit can be done in a cleaner/more succinct way...
    // BEGIN
    var that = this;
    addEventListener('contextmenu', function(e){
        e.preventDefault();
        // Use the attributes property to uniquely identify this react component 
        // (so different elements can have different right click menus)
        if (e.target.attributes[0].nodeValue == that.getDOMNode().attributes[0].nodeValue) {
            menu.popup(e.x, …
Run Code Online (Sandbox Code Playgroud)

html javascript web-applications node-webkit reactjs

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

返回泛型 lambda 时的“模糊关联类型”

我有这个代码(人为的和纯粹的实验)

fn math_op(op: &str) -> Option<Box<Fn(i32, i32) -> i32>> {
    let ret: Option<Box<Fn(i32, i32) -> i32>> = match op {
        "+" => Some(Box::new(|a: i32, b: i32| -> i32 { a + b } )),
        "-" => Some(Box::new(|a: i32, b: i32| -> i32 { a - b } )),
        "*" => Some(Box::new(|a: i32, b: i32| -> i32 { a * b } )),
        "/" => Some(Box::new(|a: i32, b: i32| -> i32 { a / b } )),
        _ => None,
    }; …
Run Code Online (Sandbox Code Playgroud)

generics lambda rust

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

你可以将多个 glob 字符串传递给 vscode findFiles api

我想在调用 api findFiles( https://code.visualstudio.com/Docs/extensionAPI/vscode-api#WorkspaceConfiguration )时忽略工作区设置中已排除的文件夹,但是我不知道该怎么做这个。我曾尝试寻找一种组合 glob 语句的方法,但我运气不佳。我找到了 GLOB_BRACE 示例,但我认为这在这种情况下不起作用。

(例如 glob("{foo/ .cpp,bar/ .cpp}", GLOB_BRACE))

有没有办法将多个目录传递给 findFiles 中的 glob 语句以忽略?

我理想地想做这样的事情......

let search_config = vscode.workspace.getConfiguration( "search" );
let search_exclude_settings = search_config.get( "exclude" );
let exclude_properties = "{";
for ( var exclude in search_exclude_settings ) {
    if( search_exclude_settings.hasOwnProperty( exclude ) ) {
        exclude_properties += exclude + ",";
    }
}
exclude_properties += filename_and_extension + "}";

var files = vscode.workspace.findFiles(filename_search, exclude_properties, 100);
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这不起作用。任何想法将不胜感激!如果我可能遗漏了一些非常明显的东西,我深表歉意。

感谢您的时间!

汤姆

visual-studio-code vscode-extensions

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

golang从函数返回对象

当我从go中的函数返回一个新对象时,我正在努力弄清楚到底发生了什么.

我有这个

func createPointerToInt() *int {
    i := new(int)
    fmt.Println(&i);
    return i;
}

func main() {
    i := createPointerToInt();
    fmt.Println(&i);
}
Run Code Online (Sandbox Code Playgroud)

返回的值是

0x1040a128
0x1040a120
Run Code Online (Sandbox Code Playgroud)

我希望这两个值是相同的.我不明白为什么有8字节的差异.

在我所看到的等效C代码中:

int* createPointerToInt() {
    int* i = new int;
    printf("%#08x\n", i);
    return i;
}

int main() {
    int* r = createPointerToInt();
    printf("%#08x\n", r);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

返回的地址是相同的:

0x8218008
0x8218008
Run Code Online (Sandbox Code Playgroud)

我在这里错过了一些令人目眩的事吗?任何澄清将不胜感激!

c go

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

如何设置dylib搜索路径OSX

我在Xcode中有一个项目,我在环境变量窗格中设置了DYLD_FALLBACK_LIBRARY_PATH,以设置我的应用程序应该查找要链接到的库的位置(这对我来说很有用)

在此输入图像描述

我正在编写一个CMakeLists.txt文件来生成这个项目,我想从脚本中设置这个属性.

我知道我可以这样做:

SET(ENV{DYLD_FALLBACK_LIBRARY_PATH} ${DYLD_FALLBACK_LIBRARY_PATH} /path/to/lib)
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时我得到这个错误:

'dyld: Library not loaded ... Reason: image not found' 
Run Code Online (Sandbox Code Playgroud)

启动应用程序时.我想这句话不一样.

有人知道如何从CMakeLists.txt中获得与Xcode相同的功能吗?

我隐约知道CMake RPATH的东西,但如果可能的话,我宁愿避免这种情况.

感谢您的时间!

干杯!

汤姆

macos linker rpath cmake dyld

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

C++变量参数错误

我最近在MSVC(2013)中偶然发现了一个奇怪的行为,我想澄清有关变量参数的问题.

在"..."之前看起来有多个参数会导致意外行为

int formatString(const char* msg, char* buffer, int bufferLength, ...)
{
    int length = 0;
    if (msg != nullptr) {
        va_list args;
        va_start(args, msg);
        length = vsnprintf_s(buffer, bufferLength, bufferLength, msg, args);
        va_end(args);
    }

    return length;
}
Run Code Online (Sandbox Code Playgroud)

像这样调用这个函数

const char* message = "A word: %s and a number %d";
const int bufferLength = 1024;
char buffer[bufferLength];
int formattedMsgLen = formatString(message, buffer, bufferLength, "cheese", 4);
Run Code Online (Sandbox Code Playgroud)

会立即导致程序崩溃.如果我之前将缓冲区设置为0

memset(buffer, 0, 1024); // We know sizeof(char) == 1
Run Code Online (Sandbox Code Playgroud)

这被写入缓冲区:

"A word: A word:  and …
Run Code Online (Sandbox Code Playgroud)

c c++ variadic-functions

-2
推荐指数
1
解决办法
181
查看次数