我有一个包含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) 我正在设计一个新服务器,它需要支持数千个UDP连接(大约100,000个会话).有哪些输入或建议可供使用?
我有一个TCHAR,价值如下:
TCHAR szDestPathRoot[MAX_PATH]="String This";
Run Code Online (Sandbox Code Playgroud)
现在我想要来自TCHAR的前三个角色,如下所示:
szDestPathRoot.substring(0,2);
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点.
我知道这很可能是一个蹩脚的问题,但是我连续三次全力以赴,而且我非常模糊.我是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) 我想将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
在多线程环境中使用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) 我需要能够准确地找到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月,然后检查日期是否更少),如果值更大,我将其附加到列表几个月,并一直循环,直到我到达我的结束日期.
它完美地工作它似乎不是一个好方法...
让这个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:' 你好亲爱的邮戳用户.'}"
我们何时应该使用互斥锁?什么时候应该使用信号量?
我有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()慢.
linux ×2
python ×2
.net ×1
c++ ×1
class ×1
contains ×1
curl ×1
date-math ×1
datetime ×1
delegates ×1
epoll ×1
hash ×1
indexof ×1
ios ×1
iphone ×1
java ×1
jodatime ×1
junit ×1
key ×1
list ×1
local ×1
mutex ×1
objective-c ×1
perl ×1
posix-select ×1
scala ×1
semaphore ×1
sockets ×1
tchar ×1
time ×1
utc ×1
windows ×1