我正在寻找一种优雅的方法来从元素n开始获取一个列表,而不必指定列表的长度.假设我们有一个多行字符串,我将其拆分成行,然后想要从第3行开始获取所有行的列表:
string.split("\n").slice(3,X) // But I don't know what X is...
Run Code Online (Sandbox Code Playgroud)
我真正感兴趣的这里是是否有一种方式来获得由返回列表的引用保持split
通话,以便其长度可以代入X
在时slice
通话,有点像一个花哨_
(在这种情况下,它会读作slice(3,_.length)
)?在python中,不需要指定切片的最后一个元素.
当然我可以通过在拆分后使用临时变量来解决这个问题,或者创建一个语法很好的辅助函数,但我只是好奇.
我们在Mercurial中进行合并时遇到了一个问题,其中空白更改导致合并冲突,这些冲突掩盖了我们可能遇到的任何"真实"冲突,并使合并成为一场噩梦.我们最近已经采用了一种格式化风格,它改变了某些分支中文件的缩进,因此合并几乎是不可能的.
例如,尝试:
hg init testrepo
cd testrepo/
echo "This is text." > newfile.txt
hg add newfile.txt
hg commit -m "Created a file."
hg branch newbranch
echo "This is some more text." > newfile.txt
hg commit -m "Changed text in the file."
hg update default
echo " This is text." > newfile.txt
hg commit -m "Added indentation whitespace."
Run Code Online (Sandbox Code Playgroud)
这导致两个分支,一个具有空白更改,另一个具有文本更改:
@ 2 " This is text".
|
|
| o 1 "This is some more text."
|/
|
o 0 "This is …
Run Code Online (Sandbox Code Playgroud) 我一直在玩Scala代码,遇到了我不理解的编译器错误.代码生成Ints对的向量,然后尝试过滤它.
val L = for (x <- (1 to 5)) yield (x, x * x)
val f = (x: Int, y: Int) => x > 3
println(L.filter(f))
Run Code Online (Sandbox Code Playgroud)
编译器抱怨尝试使用编译器错误消息作为方法f
的参数filter
:
error: type mismatch;
found : (Int, Int) => Boolean
required: ((Int, Int)) => Boolean
Run Code Online (Sandbox Code Playgroud)
如何f
正确定义函数以满足所需的函数类型?我试图添加额外的括号,(x: Int, y: Int)
但这给了:
error: not a legal formal parameter
val f = ((x: Int, y: Int)) => x > 3
^
Run Code Online (Sandbox Code Playgroud) 这里的讨论描述了eclipse中的"显示视图",它允许人们快速评估java表达式.问题是,当我打开显示视图时,图标保持灰色,我无法执行任何操作.唯一没有的图标是"清除控制台".奇怪的是,很多网页上的截图显示了相同的行为,但发布有关该功能的人没有提到它.上下文相关菜单中也没有任何选项.我正在尝试java项目.我在调试视图中尝试了它,我得到了同样的问题.
我的主机分类后,我会提供截图.
我正在使用eclipse 3.4.