小编soc*_*soc的帖子

为什么Scala编译器不允许使用默认参数重载方法?

虽然可能存在这样的方法过载可能变得模糊的有效情况,但为什么编译器不允许在编译时和运行时都不模糊的代码?

例:

// This fails:
def foo(a: String)(b: Int = 42) = a + b
def foo(a: Int)   (b: Int = 42) = a + b

// This fails, too. Even if there is no position in the argument list,
// where the types are the same.
def foo(a: Int)   (b: Int = 42) = a + b
def foo(a: String)(b: String = "Foo") = a + b

// This is OK:
def foo(a: String)(b: Int) = a + b …
Run Code Online (Sandbox Code Playgroud)

methods default scala overloading

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

为什么JVM仍然不支持尾调用优化?

jvm-prevent-tail-call-optimization之后两年,似乎有一个原型 实现,MLVM已经将该功能列为"proto 80%"一段时间了.

Sun的/ Oracle方面是否没有积极的兴趣支持尾调用,或者只是尾部调用" 在每个功能优先级列表中排在第二位 [...]"如JVM所述语言峰会

如果有人测试了MLVM构建并且可以分享它的工作原理(如果有的话),我会非常感兴趣.

更新: 请注意,像Avian这样的某些虚拟机支持正确的尾部调用,没有任何问题.

java language-agnostic optimization jvm tail-call-optimization

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

Java编译器中"let expression"(LetExpr)的目的是什么?

Java编译器似乎支持(寻找)let表达式.com.sun.tools.javac.tree.*LetExpr

JCTree中的一条评论甚至提到了一些语法

(let int x = 3; in x+2)
Run Code Online (Sandbox Code Playgroud)

这当然不被语言的语法所接受,并在早期的编译阶段被拒绝.

我想知道这个构造的起源,这是我以前从未见过的.

javac是由内部使用还是由其他工具合成?它可能只是Java早期的一件神器,它的语言功能从未见过光明吗?

今天有什么有用的东西吗?

一般来说,它为什么存在?

java compiler-construction language-design let

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

为什么*.tar.gz仍然比*.tar.xz更常见?

每当我看到一些使用GZip压缩的源包或二进制文件时,我想知道是否还有理由支持gz超过xz(不包括到2000年的时间旅行),LZMA压缩算法的节省是巨大的,并且解压缩的幅度不会比gzip的.

compression zip lzma xz

63
推荐指数
5
解决办法
4万
查看次数

Scala符号的目的?

可能重复:
Scala中符号文字的一些示例用例是什么?

Symbol的目的是什么?为什么它应该得到一些特殊的文字语法,例如'FooSymbol

syntax symbols scala language-design literals

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

Scala 2.8和Scala 2.7之间最大的区别是什么?

我在Scala 2.7.5中编写了一个相当大的程序,现在我期待2.8版本.但我很好奇Scala演变的这一重大飞跃将如何影响我.

这两个版本的Scala之间最大的区别是什么?也许最重要的是:

  • 需要重写一下吗?
  • 重写任何东西只是为了利用一些很酷的新功能吗?
  • 一般来说,Scala 2.8的新功能究竟是什么?

scala

58
推荐指数
5
解决办法
9420
查看次数

Scala(和Java)中的类和类型之间有什么区别?

斯卡拉

在Scala中可以观察到类和类型之间的差异,为什么这种区别很重要?

从语言设计的角度来看,它只是一个考虑因素,还是在编写Scala时会产生"实际"影响?

或者是根本,以"固定边界"的类型系统(Nothing,Null来我的心)?

Java的

在Java中也可以识别出上面提到的考虑/差异/问题有多少?


(请参阅Type和Class之间的区别?作为语言无关的介绍.)

java types scala language-design class

53
推荐指数
2
解决办法
6636
查看次数

使用JPA时@Entity和@Table中的name参数有什么区别?

我使用JPA2两者@Entity@Table有一个name属性,例如:

@Entity(name="Foo")
@Table (name="Bar")
class Baz
Run Code Online (Sandbox Code Playgroud)

我应该使用哪些,哪些是可选的?

在我的具体情况下,我有一个类User和一个类Group,它有额外的要求(据我所知),因为它们是SQL中的保留字.

在编写查询时,工作解决方案将如何显示以及我将以哪个名称引用实体?

更新.我添加name="GROUPS"了两个注释Group并执行了相同的操作User,但现在我收到此错误:

Exception Description: The table [USERS] is not present in this descriptor.
Descriptor: RelationalDescriptor(example.Group --> [DatabaseTable(GROUPS)])
Run Code Online (Sandbox Code Playgroud)

Internal Exception: java.sql.SQLException: Table not found in statement [SELECT ID, MAXIMUMROLE, MEMBERSHIPS_ID FROM USERS]
Run Code Online (Sandbox Code Playgroud)

java database persistence annotations jpa

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

D语言是否有多个标准库和GC问题?

我想知道D是多么成熟和稳定,如果它可能是C/C++的一个很好的替代品.

我知道目前有两个标准库(Phobos和Tango).是否仍然没有统一的标准库?

另外我前段时间听说语言在GCed /非GCed代码的边界上存在问题.我在D网站上找不到任何关于它的参考,这个问题仍然是正确的吗?

d tango phobos

45
推荐指数
4
解决办法
4100
查看次数

quasiquotations中"quasi"的含义是什么?

像Haskell(或Nemerle)这样的语言有quasiquotations.我想知道"准"是什么意思,如果没有"准"部分也存在"引用".

haskell programming-languages metaprogramming quoting nemerle

41
推荐指数
3
解决办法
3351
查看次数