P = NP的问题可能是所有计算机科学中最着名的问题.这是什么意思?为什么它如此有趣?
哦,为了额外的功劳,请发表声明的真相或虚假证明.:)
请考虑以下switch
声明:
switch( value )
{
case 1:
return 1;
default:
value++;
// fall-through
case 2:
return value * 2;
}
Run Code Online (Sandbox Code Playgroud)
此代码编译,但它对C90/C99有效(=已定义的行为)?我从未见过默认情况不是最后一种情况的代码.
编辑:
正如Jon Cage和KillianDS所写:这是非常丑陋和令人困惑的代码,我很清楚它.我只对一般语法(它定义了吗?)和预期输出感兴趣.
如何从任务中获取任务的task_id值?这是我的代码:
from celery.decorators import task
from django.core.cache import cache
@task
def do_job(path):
"Performs an operation on a file"
# ... Code to perform the operation ...
cache.set(current_task_id, operation_results)
Run Code Online (Sandbox Code Playgroud)
我的想法是,当我创建任务的新实例时,我task_id
从任务对象中检索它.然后我使用任务ID来确定任务是否已完成.我不想通过path
值跟踪任务,因为文件在任务完成后被"清理",并且可能存在也可能不存在.
在上面的例子中,我将如何获得值current_task_id
?
简单的问题:c#,.net中
字符的模式是什么\w
?
我的第一个想法是它匹配[A-Za-z0-9_]
,文档告诉我:
Character class Description Pattern Matches \w Matches any \w "I", "D", "A", "1", "3" word character. in "ID A1.3"
这不是很有帮助.
而且\w
似乎也匹配äöü
.还有什么?是否有更好的(确切的)定义?
我打电话git add <file>
给命令后git status
会给我看:
...
new file: <file>
Run Code Online (Sandbox Code Playgroud)
不知怎的,我无法通过使用它来管理它来获取相同的信息ls-files
,它(ls-files -tc
在这种情况下)会告诉我:
H <commited file>
H <other commited file>
H <file>
Run Code Online (Sandbox Code Playgroud)
新文件似乎没有命令行切换.该文件被报告为缓存,这没关系,但是我怎么知道它目前没有提交?
这是可能的ls-files
或一些类似的命令(我不必解析大量的输出git status
)?
一旦ACTION_NEW_OUTGOING_CALL
播出,我需要捕获对方回答的以下事件.您能否就如何实现这一目标提出建议?我知道有可能因为Android拨号器应用程序在他们拿起时激动地将绿色的android图标更改为该人的照片.谢谢!
更新:我已经看过Android上处理传出呼叫的应用程序的来源.我注意到以下方法ContactsUtils
:
/**
* Kick off an intent to initiate a call.
*/
public static void initiateCall(Context context, CharSequence
phoneNumber) {
Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
Uri.fromParts("tel", phoneNumber.toString(), null));
context.startActivity(intent); }
Run Code Online (Sandbox Code Playgroud)
我想我的回答是在听的活动中Intent.ACTION_CALL_PRIVILEGED
.所以重新回答我的问题:有谁知道哪个活动处理Intent.ACTION_CALL_PRIVILEGED
?先谢谢你
我尝试编写一个LINQ语句,它返回所有可能的数字组合(我需要这个测试,我的灵感来自Eric Lippert的这篇文章).我调用的方法原型如下:
IEnumerable<Collection<int>> AllSequences( int start, int end, int size );
Run Code Online (Sandbox Code Playgroud)
规则是:
size
start
和之间的每个数字end
所以调用AllSequences( 1, 5, 3 )
应该会产生10个集合,每个集合大小为3:
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
Run Code Online (Sandbox Code Playgroud)
现在,不知怎的,我真的很想看到纯粹的LINQ解决方案.我可以自己编写非LINQ解决方案,所以请不要在没有LINQ的情况下投入解决方案.
到目前为止,我的尝试已经结束,我必须加入一个数字与我的方法的递归调用的结果 - 如下所示:
return from i in Enumerable.Range( start, end - size + 1 )
select BuildCollection(i, …
Run Code Online (Sandbox Code Playgroud) 我想创建一个内部自动属性:
internal bool IP { get; protected internal set; }
Run Code Online (Sandbox Code Playgroud)
我认为可以制作setter protected
或protected internal
- 但我总是得到错误的accessibility修饰符必须比属性更具限制性.不是这样的吗?Private
这里没有帮助我.
编辑:
问题是:如何使用内部getter和受保护的setter实现自动属性?
有没有理由为什么Visual Studio使用这种奇怪的语法(例如在搜索/替换对话框中)?
而不是写\s*(\w+) = new Process\(\)
我必须写:b*{:a+} = new Process\(\)
.
我总是在努力学习这种语法 - 特别是因为普通的.NET语法是前者.
这是两种语法之间的不完全比较:
What Visual .NET Comment
Studio
----------------------------------------------------------------
Tab/Spaces :b \s Either tab or space
Alphanumeric :a \w ([a-zA-Z0-9])
Subexpression {} ()
Substitution \n $n Substitutes the substring matched
by a numbered subexpression.
Backreference \n \n Matches the value of a numbered
subexpression.
----------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参见此处(Visual Studio,C#).
这有什么理由吗?这是历史性的吗?有什么优势吗?
是的,可以为"Sum"或"Divide"等函数生成边界值测试.Pex是一个很好的工具.
但更多时候我们会对商业行为进行测试.让我们考虑经典Beck的tdd书中的例子:
[Test]
public void ShouldRoundOnCreation()
{
Money money = new Money(20.678);
Assert.AreEqual(20.68,money.Amount);
Assert.AreEqual(2068,money.Cents);
}
Run Code Online (Sandbox Code Playgroud)
可以生成此测试吗?没有:)我项目中95%的测试检查业务逻辑,无法生成.
Pex(特别是与Moles配对)可以提供100%的代码覆盖率,但是测试套件的高代码覆盖率从未表明,代码经过了充分测试 - 它只能让所有内容都经过测试.这非常危险.
所以,问题是 - Pex真的是有用的工具吗?