程序设计

专业和发烧友程序员的问答


13
更新SQL中的多列
有没有一种方法可以像使用插入语句一样更新SQL Server中的多列? 就像是: Update table1 set (a,b,c,d,e,f,g,h,i,j,k)= (t2.a,t2.b,t2.c,t2.d,t2.e,t2.f,t2.g,t2.h,t2.i,t2.j,t2.k) from table2 t2 where table1.id=table2.id 或类似的东西,而不是像这样: update table set a=t2.a,b=t2.b etc 如果您有100多个专栏,那么编写起来可能会很累。


4
angularjs路由可以具有可选参数值吗?
我可以设置带有可选参数的路由(相同的模板和控制器,但是如果某些参数不存在,则应将其忽略)? 因此,只编写一个规则,而不是编写以下两个规则? module.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/users/', {templateUrl: 'template.tpl.html', controller: myCtrl}). when('/users/:userId', {templateUrl: 'template.tpl.html', controller: myCtrl}) }]); 这样的事情([此参数是可选的]) when('/users[/:userId]', {templateUrl: 'template.tpl.html', controller: myCtrl}) //note: this previous doesn't work 我在他们的文档中找不到任何内容。

5
LINQ-左联接,分组依据和计数
假设我有以下SQL: SELECT p.ParentId, COUNT(c.ChildId) FROM ParentTable p LEFT OUTER JOIN ChildTable c ON p.ParentId = c.ChildParentId GROUP BY p.ParentId 如何将其转换为LINQ to SQL?我被困在COUNT(c.ChildId),生成的SQL似乎总是输出COUNT(*)。这是到目前为止我得到的: from p in context.ParentTable join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1 from j2 in j1.DefaultIfEmpty() group j2 by p.ParentId into grouped select new { ParentId …
166 c#  .net  linq  linq-to-sql 

13
在C#代码中使用.NET 4.0元组是否是糟糕的设计决策?
在.net 4中添加了Tuple类之后,我一直试图确定在设计中使用它们是否是一个错误的选择。按照我的看法,元组可以是编写结果类的捷径(我敢肯定,还有其他用途)。 所以这: public class ResultType { public string StringValue { get; set; } public int IntValue { get; set; } } public ResultType GetAClassedValue() { //..Do Some Stuff ResultType result = new ResultType { StringValue = "A String", IntValue = 2 }; return result; } 等效于此: public Tuple<string, int> …


9
在学术CS界,“未打字”是否还意味着“动态打字”?
我正在读一张幻灯片,上面写着“未键入JavaScript”。这与我认为是正确的相矛盾,因此我开始努力尝试以了解更多信息。 JavaScript的所有答案都是非类型化语言吗?他说JavaScript 并不是没有类型的,而是提供了我熟悉和满意的各种形式的静态,动态,强和弱类型的示例,所以这不是走的路。 因此,我问了JavaScript的创建者Brendan Eich,他说: 学术类型使用“无类型”来表示“没有静态类型”。他们足够聪明,可以看到值具有类型(duh!)。上下文很重要。 以学术为重点的计算机科学人员是否使用“未类型化”作为“动态类型化”的同义词(这是否有效?),或者还有更深层的我想念的东西吗?我同意布伦丹(Brendan)的观点,即上下文很重要,但任何引用的解释都将是非常有用的,因为我目前的“继续阅读”书籍都没有在这个主题上发挥作用。 我想详细说明这一点,以便提高我的理解力,因为即使Wikipedia也没有提及这种替代用法(无论如何我还是可以找到)。如果我弄错了,我不想在将来混用该术语或质疑该术语的使用:-) (我也看过一个顶级Smalltalker,说Smalltalk也是“未键入的”,所以它不是一次性的,这使我着手完成此任务!:-))

3
使用Rails 3.1资产管道有条件地使用某些CSS
我正在使用Rails 3.1.rc5构建我的第一个单独的Rails应用程序。我的问题是我想让我的网站有条件地呈现各种CSS文件。我正在使用Blueprint CSS,并且试图在screen.css大多数情况下渲染链轮/轨道,print.css仅在打印ie.css时以及从Internet Explorer访问该网站时。 不幸的是,清单中的默认*= require_tree命令application.css包括assets/stylesheets目录中的所有内容,并导致令人不愉快的CSS混乱。我当前的解决方法是一种蛮力方法,其中我分别指定了所有内容: 在application.css中: *= require_self *= require home.css ... *= require blueprint/screen.css 在我的样式表中,部分(haml): <!--[if lt IE 9] <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> ![endif]--> = stylesheet_link_tag "application" = stylesheet_link_tag 'blueprint/print', media: 'print' <!--[if lt IE8]] = stylesheet_link_tag 'blueprint/ie' ![endif]--> = javascript_include_tag "application" 这有效,但不是特别漂亮。我已经花了几个小时进行搜索,才能达到目标,但是我希望有一种更简单的方法,而我只是错过了。如果我什至可以选择性地呈现某些目录(不包括子目录),那么整个过程将变得不那么严格。 谢谢!

2
如何在ng-repeat中使用$ index启用类并显示DIV?
我有一组<li>要素。 <ul> <li ng-class="{current: selected == 100}"> <a href ng:click="selected=100">ABC</a> </li> <li ng-class="{current: selected == 101}"> <a href ng:click="selected=101">DEF</a> </li> <li ng-class="{current: selected == $index }" ng-repeat="x in [4,5,6,7]"> <a href ng:click="selected=$index">A{{$index}}</a> </li> </ul> 当用户单击上方的地址元素之一时,则应设置selected的值并显示<DIV>以下元素之一: <div ng:show="selected == 100">100</div> <div ng:show="selected == 101">101</div> <div ng-repeat="x in [4,5,6,7]" ng:show="selected == $index">{{ …
166 angularjs 

6
使用Build Flavors-构建源文件夹并正确build.gradle
请注意:答案在Xavier的答案之后进行了编辑 我正在为Android Studio中的一个相同Application项目使用不同的Build Flavors。但是,我似乎在配置它以使其正常工作方面花费了很多时间。 脚步: 创建一个新的Android Studio项目,名为“测试”。 打开build.gradle *并添加以下行: productFlavors { flavor1 { packageName 'com.android.studio.test.flavor1' } flavor2 { packageName 'com.android.studio.test.flavor2' } } 重新启动Android Studio之后,我现在在Build Variants部分下看到4个构建变体。表示到目前为止,我们已经成功设置了产品口味。** 为flavour1创建了一个新的Source文件夹;但是,我不确定我是否做对了。这是我的做法: 请记住,我为此项目的软件包名称是: com.foo.test 右键单击src文件夹,对于flavor1,我实际上在浏览器中以结构为的方式创建了各个文件夹src/flavor1/java/com/foo/test/MainActivity.java。 上面的方法运行良好,因为'java'文件夹为蓝色,这意味着IDE知道其处于活动状态的源目录。此外,该包是自动创建的。尽管如此,对于重复的类,我仍会收到警告。在这里查看截图。 对于flavour2,我尝试手动创建程序包,但flavour2的'src'文件夹似乎不是蓝色,因此右键单击时这些选项有所不同,并且'New Package'不可用。在此处查看图片。 请注意,对于flavor1,我还创建了一个“ res”目录,该目录的确变为蓝色,但是尽管如此,在我想使用其他目录的情况下,它也无法创建Android Resource文件或Andorid资源目录重新调配不同的口味。 难道我做错了什么?还是我错过了什么?让我知道您是否需要更多信息。 *我的项目似乎有两个 build.gradle文件。一个位于项目文件夹(\ GradleTest)的根目录下,此为空。第二个位于\ GradleTest子文件夹的根目录下,也称为“ GradleTest”(GradleTest-GradleTest),这是打开时已经有代码的那个。因此,那是我编辑的那个。 **我检查gradle这个设置,显然使用自动导入了已启用。尽管如此,对build.gradle文件进行更改并不会自动更新构建变体。注意:我也尝试过使用Build-Rebuild Project和/或Build-Make Project,不要忙。我仍然必须关闭项目,然后重新打开以使更改生效。


2
什么是指南针,什么是无礼...它们有何不同?
我想开始使用罗盘和无礼的话来加快开发速度。此刻,我已经在Mac上安装了Sass,并指示它监视scss文件作为输入,以及css文件作为生成的输出。 在许多文章中,Sass与Compass一起使用,我想知道为什么会这样,而Compass补充说Sass没有提供什么呢?如果可以举一个例子,那就更好了。 谢谢
166 css  sass  compass-sass 

6
python设计模式
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 改善这个问题 我正在寻找使用Python给出最佳实践,设计模式和SOLID原理示例的任何资源。

17
断言何时应保留在生产代码中?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4个月前关闭。 改善这个问题 在comp.lang.c ++。moderated上正在进行一场讨论,讨论是否应将断言(应在C ++中默认情况下仅存在于调试版本中)保留在生产代码中。 显然,每个项目都是独特的,所以在这里我的问题是没有这么多是否断言应该保持,但在这情况下,这是值得推荐的/不是一个好主意。 断言是指: 一种运行时检查,用于测试条件,该条件为false时,表明软件中存在错误。 暂停程序的一种机制(可能是在清理工作最少之后)。 我不一定要谈论C或C ++。 我个人的意见是,如果您是程序员,但不拥有数据(大多数商业桌面应用程序就是这种情况),则应保留它们,因为断言失败会显示错误,并且您不应该去带有错误,可能会损坏用户的数据。这迫使您在发货之前进行严格的测试,并使错误更明显,从而更容易发现和修复。 您的看法/经验是什么? 干杯, 卡尔 在这里查看相关问题 回应和更新 嘿,格雷厄姆, 断言是错误,纯净而简单的断言,因此应像对待一个断言一样处理。由于应该在发布模式下处理错误,因此您实际上不需要断言。 这就是为什么我在谈论断言时更喜欢“ bug”一词的原因。它使事情变得更加清晰。对我来说,“错误”一词太含糊。丢失的文件是一个错误,而不是错误,程序应该对其进行处理。尝试取消引用空指针是一个错误,程序应该承认有些东西闻起来像不好的奶酪。 因此,您应该使用断言测试指针,但是使用正常的错误处理代码来测试文件的存在。 稍微偏离主题,但在讨论中很重要。 提醒您,如果断言失败时您的断言进入调试器,为什么不这样做。但是有很多原因导致文件不存在,这完全超出了代码的控制范围:读/写权限,磁盘已满,USB设备已拔出等。由于您无法控制它,因此我认为是断言不是正确的处理方式。 卡尔 托马斯 是的,我有完整的代码,必须说我完全不同意该特定建议。 假设您的自定义内存分配器已拧紧,并将仍由其他对象使用的内存块清零。我碰巧将这个对象定期取消引用的指针归零,其中一个不变之处是该指针永远不会为null,并且您有几个断言来确保它保持这种状态。如果指针突然为空,该怎么办。您只是围绕它if(),希望它能正常工作? 记住,我们在这里谈论产品代码,因此不会破坏调试器并检查本地状态。这是用户计算机上的真实错误。 卡尔
166 assert 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.