小编con*_*com的帖子

为什么Ruby为"var = var + 1"而不是"var = var + 0"创建一个新对象?

我有这个Ruby代码:

var1 = 10
puts var1.object_id
var1 = var1 + 0
puts var1.object_id
var1 = var1 + 1
puts var1.object_id
Run Code Online (Sandbox Code Playgroud)

输出是:

1> 21
2> 21
3> 23
Run Code Online (Sandbox Code Playgroud)

问题:为什么Ruby在添加非零值时会创建一个新对象,但在添加0时却不会?

ruby object

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

是否可以通过 request.url 进行目录遍历?

我来自 PHP,您可以在其中向 URL 中注入双点以尝试目录遍历。在 NodeJS 中,您似乎让Http网络服务器自动从 URL 中删除双点。

例如,如果您转到http://example.com/static/../app.js,则 Node 似乎重定向到http://example.com/app.js,然后在我的情况下抛出 404,因为对于不以 开头的 URL 没有回调/static/

它安全通过的假设,目录遍历request.url不是可以在HTTP的NodeJS web服务器使用创建的http包?

node.js

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

在状态root.loaded.updated.inFlight中尝试处理事件`willCommit`

我正在通过"入门"页面的入门教程学习如何使用EmberJS.但是,当我进入"接受编辑"部分时,我有一个错误:

Uncaught Error: Attempted to handle event `willCommit` on <Todos.Todo:ember304:3> while in state root.loaded.updated.inFlight. 
Run Code Online (Sandbox Code Playgroud)

呼叫Todos.TodoController.acceptChanges()似乎触发了这个错误.我所指的部分是这一部分:http: //emberjs.com/guides/getting-started/accepting-edits/

在阅读了Ember的模型生命周期后 - http://emberjs.com/guides/models/model-lifecycle/#toc_in-flight-我仍然不明白为什么会出现这个错误.

一个解决方法是每次更改模型时保存模型(因此每次更改的值都是如此<input>.这样可以正常工作,但使用HTTP API可能表现不佳(而不是固件).

这可能是由于BC破坏了ember-datalib的变化吗?还有什么可能导致这个?


我用过的库的版本:

jQuery:2.0.3

把手1.0.0

EmberJS:1.0.0 RC7

Ember数据:v0.13-102-g6bdebe7

javascript ember.js

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

SQLSTATE [22P02]:文本表示无效

我正在使用PostgresqlPHP 5.3.x与PDO来访问数据库.

我有这个SQL查询(精简版),有一个占位符供PDO填写:

INSERT INTO t_articles (a_article_id) VALUES (?) RETURNING a_id
Run Code Online (Sandbox Code Playgroud)

我想a_article_id成为一个数字,5或者它应该是子查询的结果:

((SELECT max(a_article_id) FROM t_articles) + 1)
Run Code Online (Sandbox Code Playgroud)

但是,PDO说:

SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for integer: "(SELECT max(a_article_id) FROM t_articles) + 1"
Run Code Online (Sandbox Code Playgroud)

我试图将子查询设置为默认值,但显然不允许:

ERROR:  cannot use sub query in default expression
Run Code Online (Sandbox Code Playgroud)

如何插入此子查询的结果(或者可以做些什么来实现相同的结果)?

sql database postgresql

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

内存泄漏使用C字符串

我正在尝试在C中构建一个str_replace函数(以便学习C).为了使事情变得更容易,我决定创建两个辅助函数,其中一个函数具有以下原型:

char * str_shift_right(const char * string, char fill, int32_t n);

它接受一个字符串并在给定字符串fill中的n第th个位置添加字符.这是完整的代码:

// replace the nth char with 'fill' in 'string', 0-indexed
char * str_shift_right(const char * string, char fill, int32_t n) {
    // +1 the null byte, +1 for the new char
    int32_t new_size = (int32_t) strlen(string) + 2;
    char * new_string = NULL;
    new_string = calloc(new_size, sizeof(char));

    new_string[new_size - 1] = '\0';
    int32_t i = 0;
    while (i < strlen(string) + 1) {
        // …
Run Code Online (Sandbox Code Playgroud)

c memory-leaks memory-management

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

调整WebView实例的大小

我刚刚开始学习OSX Cocoa应用程序开发.我想在本机OSX窗口中显示一个网站.我认为WebView是正确的方法.我希望webview始终占据包含窗口大小的100%.

经过一番挣扎后,我明白了如何捕捉'window resize'事件,但我不知道如何根据windows新大小调整Web视图的大小.

这是我到目前为止所拥有的:

AppDelegate.h

#import <Cocoa/Cocoa.h>
#import <WebKit/WebKit.h>

@interface AppDelegate : NSObject <NSApplicationDelegate, NSWindowDelegate>

@property (assign) IBOutlet NSWindow *window;

@property (weak) IBOutlet WebView *websiteWebview;

@end
Run Code Online (Sandbox Code Playgroud)

AppDelegate.m

#import "AppDelegate.h"

@implementation AppDelegate

- (NSSize) windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize
{
    WebView *view = [self websiteWebview];
    [view setFrame:CGRectMake(0, 0, 1000, 1000)];
    return frameSize;
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [[self window] setDelegate:self];
    NSURL *url = [[NSURL alloc] initWithString:@"http://conradk.com"];
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
    [[[self websiteWebview] mainFrame] loadRequest:request];
}

@end
Run Code Online (Sandbox Code Playgroud)

我认为调用[view setFrame:CGRectMake(0, 0, …

macos cocoa objective-c webview

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

编译但得到“类型为std :: bad_cast的未捕获异常”

我正在尝试使用Boost for C ++。这是一个用编译的小程序g++ -Wall test.cpp /usr/local/Cellar/boost/1.55.0/lib/libboost_locale-mt.a

但是,当我运行它时,这是我得到的错误: libc++abi.dylib: terminating with uncaught exception of type std::bad_cast: std::bad_cast Abort trap: 6

#include <string>
#include <iostream>
#include <boost/locale.hpp>

int main(void) {
    char test[] = "Variété";
    boost::locale::to_upper(test);
    std::cout << test << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这可能是什么原因?谢谢!

我在Mac OSX Mavericks上。

c++ boost

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

为什么 window 中的“ontouchstart”“被大多数浏览器支持”?

我正在重构别人编写的一些代码。有一个函数使用:

!!('ontouchstart' in window)
Run Code Online (Sandbox Code Playgroud)

我已经在其他项目中看到过它:https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touchevents.js#L40 在 Stackoverflow 答案中: https: //stackoverflow.com/a /4819886/1127635

但它似乎可能比替代方案慢:http://jsperf.com/hasownproperty-vs-in-vs-undefined/12

那么为什么要使用这种可能较慢的替代方案呢?哪些浏览器不支持其他解决方案?

javascript dom

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

Read :: read是否保证附加数据而不覆盖任何现有数据?

我正在开发一个SMTP库,它使用缓冲的阅读器读取网络上的线路.

我想要一种不错的,安全的方式从网络中读取数据,而不依赖于Rust内部,以确保代码按预期工作.具体来说,我想知道Read特性是否保证读取的数据Read::read被附加到作为参数传递的缓冲区而不是完全覆盖缓冲区.

目前,我使用aRange来确保不依赖于Rust内部,而不会覆盖现有数据.

但是,鉴于Rust 曾经有一个很好的方法来做我想要的,我想知道当前的代码是否可以改进,也可能删除unsafe块.

rust

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

OSX"非法指令4"具有嵌套功能

这里的目标是捕获SIGINT以关闭小型套接字服务器上的服务器套接字.我试图使用嵌套函数来保持代码清洁.但...

当我做Ctrl-C(SIGINT,对吗?)时,我明白了Illegal instruction: 4.阅读这篇文章后,我已经尝试添加-mmacosx-version-min=10.8到编译标志,因为我在10.8.执行Ctrl-C时出现相同的错误.

这里有两个问题:为什么我会得到"非法指令4"?如何在不使用全局变量的情况下关闭服务器套接字?

我的软件:

Mac OSX 10.8.4
GCC 4.2.1
Run Code Online (Sandbox Code Playgroud)

这是我正在编译的方式:

gcc -fnested-functions main.c
Run Code Online (Sandbox Code Playgroud)

这是代码:

#include <sys/socket.h>
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>

void register_sigint_handler(int *serverSocket)
{
    void sigint_handler(int signal) {
        printf("Shutting down...\n");
        printf("Server socket was %d\n", *serverSocket);
        close(*serverSocket);
        exit(0);
    }
    signal(SIGINT, &sigint_handler);
}

int main(void) {
    int serverSocket = 0, guestSocket = 0;

    register_sigint_handler(&serverSocket);

    serverSocket = socket(PF_INET, SOCK_STREAM, 0);

    while (1) {}

    close(serverSocket);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c macos gcc

0
推荐指数
2
解决办法
660
查看次数

Uknown ?? 在symfony的public/index.php中?

当我查看symfony时,public/index.php我遇到了以下代码片段:

$env = $_SERVER['APP_ENV'] ?? 'dev';
$debug = (bool) ($_SERVER['APP_DEBUG'] ?? ('prod' !== $env));
Run Code Online (Sandbox Code Playgroud)

因此我执行了以下搜索:

但我仍然无法弄清楚算子??实际意味着什么.你能告诉我关于这个运算符/语法的信息吗?

php

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