小编Rah*_*thy的帖子

是否可以列出IntelliJ IDEA中具有本地更改的所有文件(在"更改"视图之外)

IntelliJ IDEA提供了两个非常方便的操作作为"视图"菜单的一部分:"最近的文件"和"最近更改的文件".有没有办法只列出有本地更改的文件?(在上述操作的非侵入式样式中,作为"更改"视图的一部分)

intellij-idea

29
推荐指数
4
解决办法
2万
查看次数

JUnit5特定于标记的gradle任务

我使用以下注释来标记我的集成测试:

@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Tag("integration-test")
public @interface IntegrationTest {
}
Run Code Online (Sandbox Code Playgroud)

这是我用来build.gradlegradle build以下方面排除这些测试的过滤器:

junitPlatform {
    filters {
        tags {
            exclude 'integration-test'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.

现在我想提供一个专门运行我的集成测试的Gradle任务 - 推荐的方法是什么?

gradle junit5

17
推荐指数
3
解决办法
4623
查看次数

单元测试Scala.js:从驻留在`test/resources`中的文件中读取测试数据

在Scala.js单元测试中,从驻留的文件加载测试数据的最简单的解决方案是什么test/resources

unit-testing scala scala.js

12
推荐指数
1
解决办法
484
查看次数

寻找处理关系的FP排名实现(即相等的值)

从排序的值序列开始,我的目标是为每个值分配一个等级,使用相同的等级来表示相等的值(又称为tie):

输入: Vector(1, 1, 3, 3, 3, 5, 6)

输出: Vector((0,1), (0,1), (1,3), (1,3), (1,3), (2,5), (3,6))

一些类型别名的可读性:

type Rank = Int
type Value = Int
type RankValuePair = (Rank, Value)
Run Code Online (Sandbox Code Playgroud)

使用可变rank变量的命令式实现可能如下所示:

var rank = 0
val ranked1: Vector[RankValuePair] = for ((value, index) <- values.zipWithIndex) yield {
  if ((index > 0) && (values(index - 1) != value)) rank += 1
  (rank, value)
}

// ranked1: Vector((0,1), (0,1), (1,3), (1,3), (1,3), (2,5), (3,6))
Run Code Online (Sandbox Code Playgroud)

为了磨练我的FP技能,我试图提出一个功能实现:

val ranked2: Vector[RankValuePair] = values.sliding(2).foldLeft((0 …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

8
推荐指数
2
解决办法
239
查看次数

Scala Range(x,Int.MaxValue)与Stream.from(x)

我是Scala初学者,用Project Euler练习我的FP技能.

在研究" 问题5:可以被1到20的所有数字整除的最小正数是多少"时,我正在比较基于范围与流的解决方案:

val r1 = Range(20, Int.MaxValue).find(i => (2 to 20).forall(i % _ == 0)).get
val r2 = Stream.from(20).find(i => (2 to 20).forall(i % _ == 0)).get
Run Code Online (Sandbox Code Playgroud)

奇怪的是,r1的计算在大约20秒内完成,而基于流的r2计算耗尽了内存.我本来期待相反的 - 有人可以解释一下吗?

scala range stream

7
推荐指数
1
解决办法
4742
查看次数

D3.js v4:访问ES6箭头函数事件监听器中的当前DOM元素

在D3.js v4中,通过传统的回调函数注册事件监听器时,this引用当前的DOM元素:

d3.select("div").on('mouseenter', function() {
  d3.select(this).text("Yay");
});
Run Code Online (Sandbox Code Playgroud)

ES6提供了箭头功能,恕我直言,使得D3.js代码更具可读性,因为它们非常简洁.但是,传统的回调不能盲目地用箭头函数替换:

d3.select("div").on('mouseenter', () => {
  d3.select(this); // undefined
});
Run Code Online (Sandbox Code Playgroud)

文章"论D3和箭头函数 "给出了一个非常好的解释,说明为什么this没有按预期约束.本文建议对需要访问当前DOM元素的代码使用传统的回调.

是否可以从箭头函数访问当前的DOM元素?

d3.js ecmascript-6 arrow-functions

7
推荐指数
2
解决办法
1234
查看次数

如何设置webkit-transform-origin在其边缘滚动3D立方体?

我正在摆弄CSS3观点和转换.从这个伟大的3D立方体示例开始,我想修改立方体,使其不仅围绕其中心旋转,而且在其边缘上滚动.

我通过围绕z轴旋转立方体来获得第一个左倾斜工作-webkit-transform-origin: bottom left(参见小提琴 ;为简单起见,示例限于左倾斜).对于随后的左倾斜,我正在努力如何进一步调整原点.从概念上讲,我需要设置相对于父容器的原点(即对于连续的左倾斜,它应该以200px的步长逐渐向左移动).

任何帮助是极大的赞赏!

transform css3

6
推荐指数
1
解决办法
990
查看次数

使用长文本控制JEditorPane的首选大小

我有一个JEditorPane显示在弹出窗口内,通过按钮触发.窗格包含长文本,因此它嵌套在a中JScrollPane,弹出窗口的最大大小限制为300 x 100:

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            String text = "Potentially looooooong text. " + 
                "Lorem ipsum dolor sit amet, consectetuer" +
                "adipiscing elit, sed diam nonummy nibh euismod " +
                "tincidunt ut laoreet dolore magna aliquam" + 
                "adipiscing elit, sed diam nonummy nibh euismod" + 
                "erat volutpat. Ut wisi enim ad minim veniam, " + 
                "quis nostrud exerci tation.";

            final JEditorPane editorPane = new JEditorPane("text/html", …
Run Code Online (Sandbox Code Playgroud)

java layout swing jeditorpane

5
推荐指数
1
解决办法
7834
查看次数

具有缓存hashCode的Scala案例类

我的印象是Scala案例类的hashCode完全由其字段决定.因此,我认为缓存hashCode对于不可变的case类是安全的.

好像我错了:

case class Foo(s: String) {
  override val hashCode: Int = super.hashCode()
}

val f1 = Foo("foo")
val f2 = Foo("foo")

println(f1.hashCode == f2.hashCode) // FALSE
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这里发生了什么,拜托?

附录 - 仅供比较:

case class Bar(s: String)

val b1 = Bar("bar")
val b2 = Bar("bar")

println(b1.hashCode == b2.hashCode) // TRUE
Run Code Online (Sandbox Code Playgroud)

scala

5
推荐指数
1
解决办法
748
查看次数

Scala更高的kinded类型方差

我正在用更高级的类型浸泡我的脚趾,探索一个非常基本的Scala示例:

trait Mappable[F[_]] {
  def map[A, B](fa: F[A])(f: A => B): F[B]
}

object Mappable {
  implicit object MappableOption extends Mappable[Option] {
    def map[A, B](fa: Option[A])(f: A => B): Option[B] = fa.map(f)
  }
  implicit object MappableSeq extends Mappable[Seq] {
    def map[A, B](fa: Seq[A])(f: A => B): Seq[B] = fa.map(f)
  }
}

def bananaTuple[F[_], T](f: F[T])(implicit F: Mappable[F]): F[(String, T)] =
  F.map(f)(("banana", _))
Run Code Online (Sandbox Code Playgroud)

这有效:

bananaTuple(Option(42)) // Some((banana,42))
bananaTuple(Seq(42))    // List((banana,42))
Run Code Online (Sandbox Code Playgroud)

但这不编译:

bananaTuple(Some(42))
bananaTuple(List(42))
Run Code Online (Sandbox Code Playgroud)

我得到的编译错误:

could not find implicit value for parameter …
Run Code Online (Sandbox Code Playgroud)

scala higher-kinded-types

5
推荐指数
1
解决办法
367
查看次数