小编Noe*_*edy的帖子

在scala模式匹配中,可变模式的可疑阴影是什么?

当我在Intellij中键入以下代码时,它会突出显示匹配中的x,并显示警告"可变模式的可疑阴影"

val x = "some value"
"test" match {
  case x =>
}
Run Code Online (Sandbox Code Playgroud)

它建议我将其更改为:

val x = "some value"
"test" match {
  case `x` => //note backticks
}
Run Code Online (Sandbox Code Playgroud)

什么是可疑阴影以及反对做什么?!

scala intellij-idea

30
推荐指数
3
解决办法
7213
查看次数

如何让Intellij停止强调我的scala代码?

基本上,Intellij通过强调我的许多代码使我的代码非常难以阅读.它有点像我的屏幕左侧的棋盘!=>

太多的下划线!

我查看了代码编辑器设置,但是我无法在scala下找到一个控制这些下划线的设置.我正在使用暮光之城主题,但我刚才注意到了这个问题.任何想法Intellij增益?

scala intellij-idea

28
推荐指数
1
解决办法
7477
查看次数

为什么使用scala的蛋糕模式而不是抽象字段?

我一直在阅读通过蛋糕模式在scala中执行依赖注入.我想我明白了,但我一定错过了一些东西,因为我仍然看不到它的重点!为什么通过自我类型而不仅仅是抽象字段来声明依赖性更好?

鉴于编程中 的示例,ScalaTwitterClientComponent使用cake模式声明了这样的依赖关系:

//other trait declarations elided for clarity
...

trait TwitterClientComponent {

  self: TwitterClientUIComponent with
        TwitterLocalCacheComponent with
        TwitterServiceComponent =>

  val client: TwitterClient

  class TwitterClient(val user: TwitterUserProfile) extends Tweeter {
    def tweet(msg: String) = {
      val twt = new Tweet(user, msg, new Date)
      if (service.sendTweet(twt)) {
        localCache.saveTweet(twt)
        ui.showTweet(twt)
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这比将依赖关系声明为抽象字段更好吗?

trait TwitterClient(val user: TwitterUserProfile) extends Tweeter {
  //abstract fields instead of cake pattern self types
  val service: TwitterService
  val localCache: TwitterLocalCache …
Run Code Online (Sandbox Code Playgroud)

dependency-injection scala cake-pattern

25
推荐指数
2
解决办法
3071
查看次数

NUnit在Windows 7/64上"丢失"了GPSVC.DLL

我最近从Vista/32升级到Win7/64.在我的旧机器上,一切正常.

不幸的是,在我的新机器上,NUnit不会加载我的单元测试,错误消息"System.IO.FileNotFoundException:无法加载文件或程序集'UnitTest'或其依赖项之一.系统无法找到指定的文件".(实际上,我必须完成我所有解决方案的项目,并将它们设置为32位才能实现这一目标.)

所以我加载了Dependency Walker,它告诉我我错过了IESHIMS.DLL.我在我的机器上发现了两个,所以我从Internet Explorer目录中复制了32位版本,DW停止抱怨该文件.

但是,它也缺少GPSVC.DLL.我在C:\ Windows\System32中只发现了一个这样的副本,但当我将其复制到我的单元测试目录中时,DW抱怨它是64位,而NUnit仍然无法运行.它现在还将SYSNTFY.DLL添加到缺少的列表中.我只有其中一个,那也是64位.NUnit仍然报告错误.

那么我应该废弃这个64位操作系统并回到原来的32位,还是我错过了一些明显的东西?

.net dll dependencies x86-64 32bit-64bit

21
推荐指数
1
解决办法
4万
查看次数

验证ErrorTemplate未显示数据错误

这有点像WPF whodunnit!我的验证寺庙在预期时没有出现

问题

基本上,我在我的视图模型上使用IDataErrorInfo来提供有关数据输入错误的反馈.我可以看到这被调用并按预期工作,但WPF从不显示绑定控件的验证错误模板!

我已尝试使用内置的默认文本框红色边框错误模板,样式错误模板和硬编码模板.这些都不会在数据错误情况下显示.

继承我的xaml绑定代码:

<TextBox x:Name="txtCaseNumber"  
Text="{Binding Path=CaseNumber, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"/>
Run Code Online (Sandbox Code Playgroud)

很奇怪,错误进入Validation.Errors集合.以下代码导致我的IDataErrorInfo错误消息显示在绑定控件旁边.这让我认为问题出在xaml方面,而不是viewmodel方面.

<ContentPresenter 
Content="{Binding ElementName=txtCaseNumber, Path=(Validation.Errors).CurrentItem}" />
Run Code Online (Sandbox Code Playgroud)

另外, System.Windows.Controls.Validation.GetHasError(txtCaseNumber)返回true.

如果有所作为,我将在winforms中托管WPF.我在代码或样式中找不到任何对Validation或ErrorTemplate的引用,所以我很确定这不是一个样式自己的目标.

wpf xaml adornerlayer

20
推荐指数
1
解决办法
7332
查看次数

在Scala中,是否存在用于将异常转换为选项的预先存在的库函数?

这基本上是为了包装java工厂方法,如果无法根据输入创建项目,则抛出异常.我正在寻找基础库中的东西,如:

 def exceptionToOption[A](f: => A):Option[A] ={
    try{
      Some(f)}
    catch{
      case e:Exception => None}
  }
Run Code Online (Sandbox Code Playgroud)

用法:

val id:Option[UUID] = exceptionToOption(UUID.fromString("this will produce None"))
Run Code Online (Sandbox Code Playgroud)

我知道我可以自己写,但我想检查一下,我不是在重新发明轮子.

scala scala-option

20
推荐指数
3
解决办法
3006
查看次数

如何根据msbuild中的条件更改属性的值?

如果属性是某个值,我想更改属性的值.在C#中我会写:

if(x=="NotAllowed")
  x="CorrectedValue;
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止,请不要笑:

 <PropertyGroup>
    <BranchName>BranchNameNotSet</BranchName>
  </PropertyGroup>

///Other targets set BranchName

 <Target Name="CheckPropertiesHaveBeenSet">
    <Error Condition="$(BranchName)==BranchNameNotSet" Text="Something has gone wrong.. branch name not entered"/>
      <When Condition="$(BranchName)==master">
        <PropertyGroup>
          <BranchName>MasterBranch</BranchName>
        </PropertyGroup>
      </When>
  </Target>
Run Code Online (Sandbox Code Playgroud)

msbuild

15
推荐指数
1
解决办法
1万
查看次数

如何告诉Visual Studio在特定异常时不要破坏?

我有一个特殊类型的异常,我希望Visual Studio 不会中断并显示Exception Assistant屏幕.基本上我想让我的正常异常处理基础设施处理它.

异常是我编写的System.Exception的继承者,并且有源代码.抛出它的任何地方我都希望VS不能捕获它,也就是说只有一次抛出一个新的BlahException()就没用了; 在代码中.这是因为抛出了很多异常,我不想单独压制每一个实例.

如果它有所作为,我在Visual Studio 2010 Ultimate,Framework 3.5 SP1上.

c# debugging exception-handling visual-studio

11
推荐指数
1
解决办法
2702
查看次数

是否有内置的方式将Option转换为scalaz验证?

我一直在寻找,但我找不到隐含的转换器.写一篇文章显然是微不足道的,但我想知道我是否错过了某个scalaz库中的一个!

scala scalaz

10
推荐指数
1
解决办法
1775
查看次数

F#泛型类型约束和duck typing

我正在尝试在F#中实现duck typing,我发现你可以在F#泛型中有一个成员约束,如下所示:

type ListEntryViewModel<'T when 'T : (member Name : string)>(model:'T) = 
  inherit ViewModelBase()

  member this.Name with get() = model.Name
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试引用该属性时,上面的代码将无法编译.我收到编译器错误:

此代码不够通用.^ T :(成员get_Name:^ T - >字符串)时的类型变量^ T无法一般化,因为它会逃避其范围.

是否可以通过通用约束实现鸭子类型?

generics f# inline

9
推荐指数
3
解决办法
3807
查看次数