小编nny*_*thm的帖子

在Scala中获取子数组的正确方法是什么?

我试图在scala中得到一个子数组,我对它的正确方法有点困惑.我最想要的是你在python中如何做到这一点:

x = [3, 2, 1]
x[0:2]
Run Code Online (Sandbox Code Playgroud)

但我相当肯定你不能这样做.

最明显的方法是使用Java Arrays util库.

import java.util.Arrays
val start = Array(1, 2, 3)
Arrays.copyOfRange(start, 0, 2)
Run Code Online (Sandbox Code Playgroud)

但它总是让我觉得在Scala中使用Java库有点脏.我找到的最"scalaic"方式就是

def main(args: List[String]) {
    val start = Array(1, 2, 3)
    arrayCopy(start, 0, 2)
}
def arrayCopy[A](arr: Array[A], start: Int, end: Int)(implicit manifest: Manifest[A]): Array[A] = {
    val ret = new Array(end - start)
    Array.copy(arr, start, ret, 0, end - start)
    ret
}
Run Code Online (Sandbox Code Playgroud)

但有更好的方法吗?

scala scala-collections

89
推荐指数
2
解决办法
6万
查看次数

如何在eclipse中显示尾随空格?

我在emacs中寻找类似(setq show-trailing-whitespace t)的东西,其中所有的尾随空白都是明显的,即突出显示.我对这种选项的搜索主要是删除所有尾随空格的示例,这完全不是我正在查看的内容.

eclipse ide whitespace

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

Emacs重命名变量

如何在emacs中重命名变量?Eclipse有一个简洁的"重命名"重构操作,它允许您以一种范围感知方式重命名变量,这比使用本地化替换字符串更容易使用,特别是如果变量名称是像e这样的字符.emacs是否内置了类似的功能?

ide emacs

23
推荐指数
5
解决办法
9261
查看次数

AnyRef上的synchronized方法是如何实现的?

在Scala中,AnyRef上有一个synchronized方法,它允许您在任何扩展AnyRef的对象上进行同步.但是,它在AnyRef上是抽象的,我无法弄清楚它是如何通过grepping scala源来实现的.看起来它的工作原理是利用Java中的synchronized关键字.是这样的吗?

concurrency scala

14
推荐指数
2
解决办法
2095
查看次数

如何在常见的lisp中复制数组?

我想制作我的2D数组的副本,感觉就像处理数组的好的,功能性的,非破坏性的方式.这样做的方式是什么?

arrays functional-programming common-lisp

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

为什么所有基础不可变集合最终或密封在scala中?

我在Scala中编写了一个用于对iterables进行排序的特性,并且创建一个可以将其混合的类花了几乎同样的时间来编写特征.为什么设计决定禁止用户编写如下内容:

new List[Int] with SuperAwesomeTrait[Int]?
Run Code Online (Sandbox Code Playgroud)

现在如果我想这样做,我需要做一些奇怪的黑客,比如

class StupidList extends LinearSeq {
  val inner = List()
  /* reimplement list methods by calling into inner */
} 
Run Code Online (Sandbox Code Playgroud)

然后

new StupidList[Int] with SuperAwesomeTrait[Int].
Run Code Online (Sandbox Code Playgroud)

scala language-design

9
推荐指数
1
解决办法
212
查看次数

PHP长整数用于节俭

我的Thrift服务期望接收一个Long整数,表示以毫秒为单位的时间戳,但是来自PHP,我知道PHP thrift应该自动将我的PHP类型转换为thrift类型,但是对于Long整数,它应该使用哪种PHP类型?我认为我的计算机是64位的,但是因为我认为PHP整数的长度与平台有关,所以我真的不想依赖于整数的平台相关长度.

我目前正在抓取microtime()并乘以1000,然后转换为整数.这是使用PHP&thrift long int的"正确"方法吗?

php thrift long-integer

9
推荐指数
2
解决办法
914
查看次数

PHP中的++ $ a + $ a ++是多么模糊?

php手册声称:

$a = 1;
echo ++$a + $a++;
Run Code Online (Sandbox Code Playgroud)

在它的语法下是模棱两可的,但对我来说似乎非常清楚.++ $ a和$ a ++首先从左到右计算,所以++ $ a递增然后返回2,$ a ++返回2然后递增.2 + 2的总和是4,所以它会回显4.然而,PHP手册非常清楚地说明它可以打印4或5.

php规范没有指定操作将从左到右执行吗?

即使它没有强制执行操作将从左到右执行,在这种情况下,它不会返回4无论如何?

编辑:我重读了页面,并声明它由每个特定的操作员确定.+具有最低优先级,并且从左到右进行评估,因此看起来我之前的假设是正确的.我还是不明白.

php grammar interpreter operator-precedence

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

选项的Scala命名约定

当我返回某种类型的东西时Option,在函数名称中解释它是一个选项似乎很有用,而不是事物本身.例如,seqs有reduceOption.是否有标准的命名约定?我见过的事情:

maybeFunctionName

functionNameOption

- 似乎都不是那么好.

scala naming-conventions

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

金字塔的内置认证/授权可以实施复杂的安全方​​案吗?

似乎安全模型适合非常小的项目,但是在security.py中编写所有可能的注册用户的散列密码可能是不可行的.您是否知道扩展金字塔身份验证的任何示例,或者通过Pyramid的安全方案调用我自己的安全信息数据库有什么好处?

python security scaling pyramid

5
推荐指数
2
解决办法
3348
查看次数