我听说Lisp的宏系统非常强大.但是,我发现很难找到一些可用于它们的实际例子; 没有它们很难实现的事情.
谁能举一些例子?
使用多个线程时,共享内存需要被关键部分锁定.但是,使用关键部分会导致潜在的死锁.他们怎么能避免?
格式化C#代码的普遍接受的方式似乎如下:
namespace SomeNamespace
{
namespace SomeSubNamespace
{
class SomeClass
{
void SomeFunction()
{
using (var someFile = new StreamWriter(somePath))
{
try
{
lock(someCriticalSection)
{
using (var someDisposableThing1 = new DisposableThing())
{
DoSomething();
using (var someDisposableThing2 = new DisposableThing())
{
lock(someOtherCriticalSection)
{
DoSomethingMore();
}
}
}
}
}
catch(Exception e)
{
Log(e);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这会浪费大量的水平和垂直屏幕空间.我肯定不是第一个注意到的人.我的问题是:你是否与它一起生活,或者你是否开发了不同的格式化风格以避免过多的空白区域?
PS:请注意,我甚至没有使用单个if语句!
我听说D语言具有强大的元编程功能,可以在编译时执行函数.这听起来非常令人兴奋,但我发现很难想到没有它们很难实现的实际例子.
任何人都可以提供一些D的元编程功能非常方便的情况吗?
几年来,我正在等待Subversion具有"永久删除"(删除)功能.我对转换到Subversion(来自Visual SourceSafe:p)犹豫不决,因为我认为这是一个必不可少的功能,否则我会期望存储库不可阻挡地增长.但是,出于某种原因,该功能会一次又一次地被推迟.所以我开始想知道是否有其他功能或解决方法使得删除功能可有可无.
当你想缩小SVN中央存储库时,你会怎么做?
示例1:我检查了一个大型的第三方库,几周后我发现它不适合我的需求.我不希望它永远存储和备份大量数据.
示例2:我在存储库中有10个版本的10个大型第三方库,但我只使用最新版本.
示例3:我意外地检查了敏感信息(如John所建议的).
示例4:我不小心检查了一些从未打算放入存储库的大文件.
我必须编写一个Web应用程序,我不确定选择哪种技术.用户界面必须看起来像桌面应用程序.根据我对HTML,CSS和JavaScript的(有限)经验,我知道这远非易事.我想要的是能够像C++,C#或Java一样编程,因为我认为这些语言更适合实现GUI.
我的问题有三个:
更新:感谢您的回复!
在C++中使用指针和引用时,有时很难看出指针是否对引用的数据具有所有权,或者它是否只是时间引用.例如:
Instance* i = new Instance();
Instance* j = i;
Run Code Online (Sandbox Code Playgroud)
如何弄清楚哪两个指针对实例拥有所有权?换句话说,如何明确必须调用哪个指针删除?
注意:在上面的例子中,这不难看出,因为它是一段很短的代码.但是,当指针被复制并传递很多时,这可能会变得不清楚.
我经常听到人们称赞C#的编译速度.到目前为止,我只做了一些小应用程序,实际上我注意到编译速度非常快.但是,我想知道这是否适用于大型应用程序.大型C#项目的编译速度是否比类似大小的C++项目快?
昨天我问了一个关于在C#中复制对象的问题,大多数答案都集中在深拷贝和浅拷贝之间的区别,以及应该弄清楚两个拷贝变体中的哪一个给定拷贝构造函数(或运算符或函数)的事实.实现.我发现这很奇怪.
我用C++编写了很多软件,这种语言很大程度上依赖于复制,我从来不需要多种复制变体.我用过的唯一一种复制操作是我称之为" 足够深的复制 ".它执行以下操作:
现在,我的问题有三个:
c# ×2
c++ ×1
concurrency ×1
copy ×1
d ×1
deep-copy ×1
formatting ×1
indentation ×1
lisp ×1
macros ×1
obliterate ×1
shallow-copy ×1
svn ×1
terminology ×1