我试图在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)
但有更好的方法吗?
我在emacs中寻找类似(setq show-trailing-whitespace t)的东西,其中所有的尾随空白都是明显的,即突出显示.我对这种选项的搜索主要是删除所有尾随空格的示例,这完全不是我正在查看的内容.
如何在emacs中重命名变量?Eclipse有一个简洁的"重命名"重构操作,它允许您以一种范围感知方式重命名变量,这比使用本地化替换字符串更容易使用,特别是如果变量名称是像e这样的字符.emacs是否内置了类似的功能?
在Scala中,AnyRef上有一个synchronized方法,它允许您在任何扩展AnyRef的对象上进行同步.但是,它在AnyRef上是抽象的,我无法弄清楚它是如何通过grepping scala源来实现的.看起来它的工作原理是利用Java中的synchronized关键字.是这样的吗?
我想制作我的2D数组的副本,感觉就像处理数组的好的,功能性的,非破坏性的方式.这样做的方式是什么?
我在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) 我的Thrift服务期望接收一个Long整数,表示以毫秒为单位的时间戳,但是来自PHP,我知道PHP thrift应该自动将我的PHP类型转换为thrift类型,但是对于Long整数,它应该使用哪种PHP类型?我认为我的计算机是64位的,但是因为我认为PHP整数的长度与平台有关,所以我真的不想依赖于整数的平台相关长度.
我目前正在抓取microtime()并乘以1000,然后转换为整数.这是使用PHP&thrift long int的"正确"方法吗?
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无论如何?
编辑:我重读了页面,并声明它由每个特定的操作员确定.+具有最低优先级,并且从左到右进行评估,因此看起来我之前的假设是正确的.我还是不明白.
当我返回某种类型的东西时Option,在函数名称中解释它是一个选项似乎很有用,而不是事物本身.例如,seqs有reduceOption.是否有标准的命名约定?我见过的事情:
maybeFunctionName
functionNameOption
- 似乎都不是那么好.
似乎安全模型适合非常小的项目,但是在security.py中编写所有可能的注册用户的散列密码可能是不可行的.您是否知道扩展金字塔身份验证的任何示例,或者通过Pyramid的安全方案调用我自己的安全信息数据库有什么好处?
scala ×4
ide ×2
php ×2
arrays ×1
common-lisp ×1
concurrency ×1
eclipse ×1
emacs ×1
grammar ×1
interpreter ×1
long-integer ×1
pyramid ×1
python ×1
scaling ×1
security ×1
thrift ×1
whitespace ×1