程序设计

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


1
使用模板Haskell获取关联的类型同义词
模板Haskell可以找出在类型类中声明的相关类型同义词的名称和/或声明吗?我曾期望reify会做我想做的事,但似乎并没有提供所有必要的信息。它适用于获取函数类型签名: % ghci GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help ... Prelude> -- I'll be inserting line breaks and whitespace for clarity Prelude> -- in all GHCi output. Prelude> :set -XTemplateHaskell Prelude> import Language.Haskell.TH Prelude Language.Haskell.TH> class C a where f :: a -> Int Prelude Language.Haskell.TH> putStrLn $(stringE . …





9
AngularJS ng类if-else表达式
随着AngularJS我使用的ng-class方式如下: <div class="bigIcon" data-ng-click="PickUp()" ng-class="{first:'classA', second:'classB', third:'classC', fourth:'classC'}[call.State]"/> 我想知道是否可以使用该if-else表达式执行与此类似的操作: <div class="bigIcon" data-ng-click="PickUp()" ng-class="{first:'classA', second:'classB', else:'classC'}[call.State]"/> 因此,无论何时call.State不同于first或second使用classC并避免指定每个值?

7
摩卡/柴的Expect.to.throw不能捕获抛出的错误
我在让Chai的expect.to.thrownode.js应用程序进行测试时遇到问题。测试会因抛出的错误而不断失败,但是如果我将测试用例包装在try和catch中并断言所捕获的错误,它将起作用。 难道expect.to.throw不喜欢的工作,我认为它应该还是什么? it('should throw an error if you try to get an undefined property', function (done) { var params = { a: 'test', b: 'test', c: 'test' }; var model = new TestModel(MOCK_REQUEST, params); // neither of these work expect(model.get('z')).to.throw('Property does not exist in model schema.'); expect(model.get('z')).to.throw(new Error('Property does not …


9
如何从网址中删除hashbang?
如何#!从网址中删除hashbang ? 我在vue路由器文档(http://vuejs.github.io/vue-router/en/options.html)中找到了禁用hashbang的选项,但此选项已删除#!,只是放在# 有什么办法可以清理网址? 例: 不: #!/home 但: /home
257 vue.js  vue-router 



12
SQL Server:快速查询,但过程缓慢
查询运行速度很快: DECLARE @SessionGUID uniqueidentifier SET @SessionGUID = 'BCBA333C-B6A1-4155-9833-C495F22EA908' SELECT * FROM Report_Opener WHERE SessionGUID = @SessionGUID ORDER BY CurrencyTypeOrder, Rank 子树成本:0.502 但是将相同的SQL放入存储过程运行速度很慢,并且执行计划完全不同 CREATE PROCEDURE dbo.ViewOpener @SessionGUID uniqueidentifier AS SELECT * FROM Report_Opener WHERE SessionGUID = @SessionGUID ORDER BY CurrencyTypeOrder, Rank EXECUTE ViewOpener @SessionGUID 子树成本:19.2 我跑了 sp_recompile ViewOpener 而且它仍然运行相同(严重),并且我还将存储过程更改为 CREATE PROCEDURE …

12
将Django模型对象转换为所有字段均完整的dict
如何将Django模型对象转换为具有所有字段的字典?理想情况下,所有内容都包含带有的外键和字段editable=False。 让我详细说明。假设我有一个类似以下的Django模型: from django.db import models class OtherModel(models.Model): pass class SomeModel(models.Model): normal_value = models.IntegerField() readonly_value = models.IntegerField(editable=False) auto_now_add = models.DateTimeField(auto_now_add=True) foreign_key = models.ForeignKey(OtherModel, related_name="ref1") many_to_many = models.ManyToManyField(OtherModel, related_name="ref2") 在终端中,我已执行以下操作: other_model = OtherModel() other_model.save() instance = SomeModel() instance.normal_value = 1 instance.readonly_value = 2 instance.foreign_key = other_model instance.save() instance.many_to_many.add(other_model) instance.save() 我想将其转换为以下字典: {'auto_now_add': …

7
Vim中的自动补全
简而言之,我正在寻找Vim编辑器可以正常工作的自动完成功能。我之前曾争论过,Vim完全替代了Linux下的IDE,尽管这确实是正确的,但它缺少一个重要功能:自动完成。 我了解Ctrl+ N,丰富的Ctags集成,Taglist,cppcomplete和OmniCppComplete。las,这些都不符合我对“自动完成工作”的描述: Ctrl+N(仅当您忘记了如何拼写class或时,才能很好地工作)while。那好吧。 Ctags给您起了基础,但有很多缺点。 Taglist只是一个Ctags包装器,因此继承了它的大多数缺点(尽管它对于列表声明非常有效)。 cppcomplete根本无法按承诺工作,并且我无法弄清楚我做错了什么,或者它是否在“正常工作”并且限制是设计使然。 OmniCppComplete似乎与cppcomplete具有相同的问题,即自动完成无法正常工作。此外,该tags文件再次需要手动更新。 我知道这样一个事实,甚至没有完善的现代IDE也不能提供良好的C ++代码完成功能。这就是为什么到目前为止,我已经接受Vim在这一领域的不足。但是我认为基本的代码完成水平要求不高,实际上是生产使用所必需的。所以我正在寻找至少可以完成以下任务的东西。 语法意识。cppcomplete承诺(但对我而言不兑现)以下内容的正确,作用域自动完成: variableName.abc variableName->abc typeName::abc 实际上,其他任何东西都完全没有用。 可配置性。我需要(轻松地)指定源文件的位置,并因此指定脚本从何处获取其自动完成信息。实际上,我的目录中有一个Makefile,它指定所需的包含路径。Eclipse可以解释其中的信息,为什么还没有Vim脚本? 最新。更改文件中的内容后,我希望自动完成功能能够反映这一点。我不想要手动触发ctags(或一些类似)。另外,更改应该是增量的,即当我只更改一个文件时,重新解析整个目录树(可能很大)是完全不可接受的ctags。 我忘记了什么吗?随时更新。 我对大量的配置和/或修改很满意,但是我不想从头开始编写解决方案,而且我也不擅长调试Vim脚本。 最后一点,我真的很喜欢Java和C#的相似之处,但我想这太令人希望了:ctags仅解析代码文件,Java和C#都具有庞大的预编译框架,需要对其进行索引。不幸的是,在没有IDE的情况下开发.NET甚至比C ++更像是PITA。
257 c++  vim  ide  autocomplete 

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.