小编0__*_*0__的帖子

Scala的所有符号运算符都意味着什么?

Scala语法有很多符号.由于使用搜索引擎很难找到这些类型的名称,因此全面列出这些名称会很有帮助.

Scala中的所有符号是什么,它们各自做了什么?

我特别想知道->,||=,++=,<=,_._,::,和:+=.

scala operators

393
推荐指数
8
解决办法
11万
查看次数

在字符串插值中逃脱美元符号

如何在字符串插值中逃避美元符号?

def getCompanion(name: String) = Class.forName(s"my.package.$name\$")

// --> "error: unclosed string literal"
Run Code Online (Sandbox Code Playgroud)

scala string-interpolation

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

IntelliJ:转到下一个拼写错误

IntelliJ IDEA具有检查拼写的检查.在分析概述中,我可以看到发现了多少拼写错误,例如12 typos found.在代码中,它们使用波浪绿线突出显示.

但是,我发现很难手动查看那些波浪线.是否有键盘快捷键搜索功能会自动跳到下一个突出显示的拼写错误

spell-checking intellij-idea

63
推荐指数
3
解决办法
2万
查看次数

E:无法找到包裹npm

当我尝试安装npm时sudo apt-get install npm,我收到以下错误:

E:无法找到包裹npm

为什么不能找到npm?我正在使用Debian 9 sudo apt-get install nodejs.

debian apt apt-get node.js npm

51
推荐指数
5
解决办法
6万
查看次数

使用Play 2.2库实现密封特性的无噪声JSON格式

我需要以最少的仪式获得一个简单的JSON序列化解决方案.所以我很高兴找到即将推出的Play 2.2库.这与普通案例类完美匹配,例如

import play.api.libs.json._

sealed trait Foo
case class Bar(i: Int) extends Foo
case class Baz(f: Float) extends Foo

implicit val barFmt = Json.format[Bar]
implicit val bazFmt = Json.format[Baz]
Run Code Online (Sandbox Code Playgroud)

但是以下失败了:

implicit val fooFmt = Json.format[Foo]   // "No unapply function found"
Run Code Online (Sandbox Code Playgroud)

我如何设置所谓的缺失提取器Foo

或者你会推荐任何其他独立的库,或多或少全自动处理我的情况?我不关心是在编译时使用宏还是在运行时使用反射,只要它开箱即用即可.

json scala playframework

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

`##`和`hashCode`有什么区别?

方法##和有hashCode什么区别?

无论hashCode我使用哪个类或重载,它们似乎都输出相同的值.谷歌也没有帮助,因为它找不到符号##.

scala hashcode

37
推荐指数
3
解决办法
5892
查看次数

在Seq中找到满足条件X的第一个元素

一般来说,如何在?中找到满足一定条件的第一个元素Seq

例如,我有一个可能的日期格式列表,我想找到第一种格式的解析结果可以解析我的日期字符串.

val str = "1903 January"
val formats = List("MMM yyyy", "yyyy MMM", "MM yyyy", "MM, yyyy")
  .map(new SimpleDateFormat(_))
formats.flatMap(f => {try {
  Some(f.parse(str))
}catch {
  case e: Throwable => None
}}).head
Run Code Online (Sandbox Code Playgroud)

不错.但是,它有点难看.2.它做了一些不必要的工作(尝试"MM yyyy""MM, yyyy"格式).也许有更优雅和惯用的方式?(用Iterator?)

collections scala

36
推荐指数
4
解决办法
3万
查看次数

为什么``对象'里面的`val`不能自动最终?

vals(?)在单例对象中自动最终的原因是什么?例如

object NonFinal {
   val a = 0
   val b = 1

   def test(i: Int) = (i: @annotation.switch) match {
      case `a` => true
      case `b` => false
   }
}
Run Code Online (Sandbox Code Playgroud)

结果是:

<console>:12: error: could not emit switch for @switch annotated match
          def test(i: Int) = (i: @annotation.switch) match {
                                                     ^
Run Code Online (Sandbox Code Playgroud)

object Final {
   final val a = 0
   final val b = 1

   def test(i: Int) = (i: @annotation.switch) match {
      case `a` => true
      case `b` => …
Run Code Online (Sandbox Code Playgroud)

scala final field

33
推荐指数
2
解决办法
4173
查看次数

使用sbt-assembly进行汇编合并策略问题

我正在尝试使用sbt-assembly将scala项目转换为可部署的胖jar .当我在sbt中运行我的程序集任务时,我收到以下错误:

Merging 'org/apache/commons/logging/impl/SimpleLog.class' with strategy 'deduplicate'
    :assembly: deduplicate: different file contents found in the following:
    [error] /Users/home/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar:org/apache/commons/logging/impl/SimpleLog.class
    [error] /Users/home/.ivy2/cache/org.slf4j/jcl-over-slf4j/jars/jcl-over-slf4j-1.6.4.jar:org/apache/commons/logging/impl/SimpleLog.class
Run Code Online (Sandbox Code Playgroud)

现在来自sbt-assembly文档:

如果多个文件共享相同的相对路径(例如,多个依赖项JAR中名为application.conf的资源),则默认策略是验证所有候选项具有相同的内容,否则出错.可以使用以下内置策略之一或编写自定义策略在每个路径的基础上配置此行为:

  • MergeStrategy.deduplicate 是上面描述的默认值
  • MergeStrategy.first 选择classpath顺序中的第一个匹配文件
  • MergeStrategy.last 挑选最后一个
  • MergeStrategy.singleOrError 在冲突时出现错误消息
  • MergeStrategy.concat 简单地连接所有匹配的文件并包含结果
  • MergeStrategy.filterDistinctLines 也可以连接,但在此过程中会留下重复的内容
  • MergeStrategy.rename 重命名源自jar文件的文件
  • MergeStrategy.discard 只是丢弃匹配的文件

通过这个我设置我的build.sbt如下:

import sbt._
import Keys._
import sbtassembly.Plugin._
import AssemblyKeys._
name := "my-project"
version := "0.1"
scalaVersion := "2.9.2"
crossScalaVersions := Seq("2.9.1","2.9.2")

//assemblySettings
seq(assemblySettings: _*)

resolvers ++= Seq(
    "Typesafe Releases Repository" at "http://repo.typesafe.com/typesafe/releases/",
    "Typesafe Snapshots Repository" at "http://repo.typesafe.com/typesafe/snapshots/",
    "Sonatype Repository" at …
Run Code Online (Sandbox Code Playgroud)

deployment scala executable-jar sbt sbt-assembly

26
推荐指数
4
解决办法
3万
查看次数

设置LCD伽玛/对比度(IntelliJ IDEA,JDK 8)

我在IntelliJ IDEA中遇到了反锯齿文本的问题.那个东西由于某种原因附带了自己版本的OpenJDK 8.无论如何......子像素别名对于明亮的暗文本是可以接受的:

在此输入图像描述

但对于明亮的黑暗文本,伽玛是错误的:

在此输入图像描述

这意味着在这个方案中,文本看起来好像是粗体和水平模糊/模糊.

是否可以指定系统属性或破解系统,否则将AA插值的伽玛值更改为更暗的颜色?我已经选择了一个非常精细的字体(FicaCode Light),在这台计算机上没有显示较少粗体的字体(带有Gnome 3,19000x1080显示屏的Linux).


编辑:我真的在寻找一种控制AA伽玛的方法.我没有使用过IDEA 2017.1 EAP,但是发布版本已经附带了"固定"捆绑调整版本1.8.0_112,这在gist评论中提到过.如果我下载该版本,我会得到与上面两张图像完全相同的像素输出.这些是idea64.jvmoptions:

自定义IntelliJ IDEA VM选项

-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Dawt.useSystemAAFontSettings=lcd
-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine
-Djava2d.font.loadFontConf=false
Run Code Online (Sandbox Code Playgroud)

添加或删除最后一个属性只是使零差价,也改变从lcdonoff具有零效果.

将这些图片与我通过Debian安装的常规OpenJDK 1.8.0_121进行比较:

在此输入图像描述

很明显,这里的AA被破坏了(1:1它看起来完全是彩色的).所以我认为捆绑版本的子像素渲染基本上是正确的.只有在深色背景上使用错误的伽玛才能显示浅色文字.


编辑:经过更多的调查,问题归结为:我可以使用之间的自定义font.conf文件,和.对于轻微提示,字体在宽高比方面看起来平衡,但抗锯齿具有错误的伽玛,因此字体线条很粗(一切看起来都是粗体).对于中等或完全提示,字体看起来更细,更清晰,但现在宽高比被打破,字体太宽.hintstylehintslighthintmediumhintfull

java intellij-idea java-2d antialiasing text-rendering

26
推荐指数
1
解决办法
874
查看次数