问题列表 - 第37870页

Perl:hash-keys丢失了他们的类信息

我有一个包含X.pm方法的包data_x();
我使用类X的实例作为哈希的键%seen,比方说.
现在这些元素keys %seen似乎已经忘记了他们的祝福:

use X;

my( $x, $y, %seen );

$x = X->new();
$x->data_x( 1 );

print " x:      ", $x, "\n";
print " x.data: ", $x->data_x(), "\n";

$seen{ $x } = 1;
$y = (keys %seen)[0];

print " y:      ", $y, "\n";
print " y.data: ", $y->data_x(), "\n";
Run Code Online (Sandbox Code Playgroud)

这打印:

 x:      X=HASH(0x228fd48)
 x.data: 1
 y:      X=HASH(0x228fd48)
Can't locate object method "data_x" via package "X=HASH(0x228fd48)"
(perhaps you forgot to load "X=HASH(0x228fd48)"?) at test.pl …
Run Code Online (Sandbox Code Playgroud)

perl hash class key

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

选择vs民意调查与epoll

我正在设计一个新服务器,它需要支持数千个UDP连接(大约100,000个会话).有哪些输入或建议可供使用?

sockets linux epoll posix-select

64
推荐指数
3
解决办法
5万
查看次数

我怎样才能对TCHAR进行子串

我有一个TCHAR,价值如下:

TCHAR          szDestPathRoot[MAX_PATH]="String This";
Run Code Online (Sandbox Code Playgroud)

现在我想要来自TCHAR的前三个角色,如下所示:

szDestPathRoot.substring(0,2);
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点.

c++ windows tchar

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

调用协议方法是否通过程序流控制?

我知道这很可能是一个蹩脚的问题,但是我连续三次全力以赴,而且我非常模糊.我是Objective C和Cocoa Touch的新手.

我创建了一个提供委托方法的类.我将使用简化的示例代码,因为细节并不重要.头文件如下所示:

#import <Foundation/Foundation.h>

@protocol UsernameCheckerDelegate <NSObject>
@required
- (void)didTheRequestedThing:(BOOL)wasSuccessful;
@end

@interface TheDelegateClass : NSObject {
    id <TheDelegateClassDelegate> tdcDelegate;
}

@property (assign) id <TheDelegateClassDelegate> tdcDelegate;

- (void)methodThatDoesSomething:(int)theValue;

@end
Run Code Online (Sandbox Code Playgroud)

源文件如下所示:

#import "TheDelegateClass.h"

@implementation TheDelegateClass

@synthesize tdcDelegate;

- (void)methodThatDoesSomething:(int)theValue {
    if (theValue > 10) {
        [[self tdcDelegate] didTheRequestedThing:NO];
        // POINT A
    }

    // POINT B
    int newValue = theValue * 10;
    NSString *subject = [NSString stringWithFormat:@"Hey Bob, %i", newValue];
    // Some more stuff here, send an email or something, whatever …
Run Code Online (Sandbox Code Playgroud)

iphone delegates objective-c custom-protocol ios

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

Joda时间:将UTC转换为本地

我想将Joda Time UTC DateTime对象转换为本地时间.

这是一种艰苦的方法,它似乎有效.但必须有更好的方法.

这是没有周围声明的代码(在Scala中):

    val dtUTC = new DateTime("2010-10-28T04:00")
    println("dtUTC = " + dtUTC)
    val dtLocal = timestampLocal(dtUTC)
    println("local = " + dtLocal)

 def timestampLocal(dtUTC: DateTime): String = {
    // This is a laborious way to convert from UTC to local. There must be a better way.
    val instantUTC = dtUTC.getMillis
    val localDateTimeZone = DateTimeZone.getDefault
    val instantLocal = localDateTimeZone.convertUTCToLocal(instantUTC)
    val dtLocal = new DateTime(instantLocal)
    dtLocal.toString
  }
Run Code Online (Sandbox Code Playgroud)

这是输出:

dtUTC = 2010-10-28T04:00:00.000 + 11:00 local = 2010-10-28T15:00:00.000 + 11:00

time scala utc local jodatime

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

在多线程环境中使用JUnit的奇怪问题

在多线程环境中使用JUnit时遇到了一个问题.以下代码应该失败,但它实际上传递了eclipse.

public class ExampleTest extends TestCase {

    private ExecutorService executor = Executors.newFixedThreadPool(10);

    private volatile boolean isDone = false;

    public void test() throws InterruptedException, ExecutionException {
        executor.submit(new Runnable() {

            @Override
            public void run() {
                try {
                    fail();
                } finally {
                    isDone = true;
                }
            }
        });

        while (!isDone) {
            Thread.sleep(1000);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

而这里是另一段代码,在这里我使用Future.get()来等待线程停止,在这种情况下它将失败.

public class ExampleTest extends TestCase {

    private ExecutorService executor = Executors.newFixedThreadPool(10);

    private volatile boolean isDone = false;

    public void test() throws InterruptedException, ExecutionException {
        Future future=executor.submit(new Runnable() …
Run Code Online (Sandbox Code Playgroud)

java junit multithreading

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

找到两个日期之间的月份的最佳方法

我需要能够准确地找到python中两个日期之间的月份.我有一个解决方案,但它不是很好(如优雅)或快速.

dateRange = [datetime.strptime(dateRanges[0], "%Y-%m-%d"), datetime.strptime(dateRanges[1], "%Y-%m-%d")]
months = [] 

tmpTime = dateRange[0]
oneWeek = timedelta(weeks=1)
tmpTime = tmpTime.replace(day=1)
dateRange[0] = tmpTime
dateRange[1] = dateRange[1].replace(day=1)
lastMonth = tmpTime.month
months.append(tmpTime)
while tmpTime < dateRange[1]:
    if lastMonth != 12:
        while tmpTime.month <= lastMonth:
            tmpTime += oneWeek
        tmpTime = tmpTime.replace(day=1)
        months.append(tmpTime)
        lastMonth = tmpTime.month

    else:
        while tmpTime.month >= lastMonth:
            tmpTime += oneWeek
        tmpTime = tmpTime.replace(day=1)
        months.append(tmpTime)
        lastMonth = tmpTime.month
Run Code Online (Sandbox Code Playgroud)

所以只是为了解释一下,我在这里做的是将两个日期转换为iso格式转换为python datetime对象.然后我循环通过在开始日期时间对象中添加一周,并检查月份的数值是否更大(除非月份是12月,然后检查日期是否更少),如果值更大,我将其附加到列表几个月,并一直循环,直到我到达我的结束日期.

它完美地工作它似乎不是一个好方法...

python datetime monthcalendar date-math

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

将CURL命令行转换为Python脚本

让这个cmd line curl语句在python脚本中工作太麻烦...帮助!试图使用URLLIB.

curl -X POST"http://api.postmarkapp.com/email"\
-H"接受:application/json"\
-H"Content-Type:application/json"\
-H"X-Postmark-Server-Token :abcdef-1234-46cc-b2ab-38e3a208ab2b"\
-v\
-d"{From:'sender@email.com',To:'recipient@email.com',主题:'邮戳测试',HtmlBody:' 你好亲爱的邮戳用户.'}"

python curl

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

106
推荐指数
8
解决办法
11万
查看次数

为什么List <T> .IndexOf()比List <T> .Contains()要快得多?

我有List有150K元素.平均工作时间IndexOf()比Contains()低4倍.我试着使用List of int.对于字符串列表,IndexOf有点快.

我发现只有一个主要区别,它的属性为TargetedPatchingOptOut.MSDN告诉:

表示应用此属性的.NET Framework类库方法不太可能受到服务版本的影响,因此有资格在本机映像生成器(NGen)映像中内联.

这个属性可能是这种行为的原因吗?为什么方法Contains()没有这样的属性?

提前致谢.

编辑:

我有这样的代码:

List<int> list = CommonHelper.GetRandomList(size);

long min = long.MaxValue;
long max = 0;
long sum = 0;

foreach (var i in list)
{
    m_stopwatch.Reset();
    m_stopwatch.Start();
    list.Contains(i); // list.IndexOf(i);
    m_stopwatch.Stop();

    long ticks = m_stopwatch.ElapsedTicks;

    if (ticks < min)
        min = ticks;

    if (ticks > max)
        max = ticks;

    sum += ticks;
}

long averageSum = sum / size;
Run Code Online (Sandbox Code Playgroud)

编辑2:

我编写了与IndexOf()相同的代码,它的工作速度比Contains()慢.

.net contains list indexof

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