虽然可能存在这样的方法过载可能变得模糊的有效情况,但为什么编译器不允许在编译时和运行时都不模糊的代码?
例:
// 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) 在jvm-prevent-tail-call-optimization之后两年,似乎有一个原型 实现,MLVM已经将该功能列为"proto 80%"一段时间了.
Sun的/ Oracle方面是否没有积极的兴趣支持尾调用,或者只是尾部调用" 在每个功能优先级列表中排在第二位 [...]"如JVM所述语言峰会?
如果有人测试了MLVM构建并且可以分享它的工作原理(如果有的话),我会非常感兴趣.
更新: 请注意,像Avian这样的某些虚拟机支持正确的尾部调用,没有任何问题.
java language-agnostic optimization jvm tail-call-optimization
Java编译器似乎支持(寻找)let
表达式.com.sun.tools.javac.tree.*
LetExpr
JCTree中的一条评论甚至提到了一些语法
(let int x = 3; in x+2)
Run Code Online (Sandbox Code Playgroud)
这当然不被语言的语法所接受,并在早期的编译阶段被拒绝.
我想知道这个构造的起源,这是我以前从未见过的.
它javac
是由内部使用还是由其他工具合成?它可能只是Java早期的一件神器,它的语言功能从未见过光明吗?
今天有什么有用的东西吗?
一般来说,它为什么存在?
每当我看到一些使用GZip压缩的源包或二进制文件时,我想知道是否还有理由支持gz超过xz(不包括到2000年的时间旅行),LZMA压缩算法的节省是巨大的,并且解压缩的幅度不会比gzip的.
可能重复:
Scala中符号文字的一些示例用例是什么?
Symbol的目的是什么?为什么它应该得到一些特殊的文字语法,例如'FooSymbol
?
我在Scala 2.7.5中编写了一个相当大的程序,现在我期待2.8版本.但我很好奇Scala演变的这一重大飞跃将如何影响我.
这两个版本的Scala之间最大的区别是什么?也许最重要的是:
斯卡拉
在Scala中可以观察到类和类型之间的差异,为什么这种区别很重要?
从语言设计的角度来看,它只是一个考虑因素,还是在编写Scala时会产生"实际"影响?
或者是根本,以"固定边界"的类型系统(Nothing
,Null
来我的心)?
Java的
在Java中也可以识别出上面提到的考虑/差异/问题有多少?
(请参阅Type和Class之间的区别?作为语言无关的介绍.)
我使用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) 我想知道D是多么成熟和稳定,如果它可能是C/C++的一个很好的替代品.
我知道目前有两个标准库(Phobos和Tango).是否仍然没有统一的标准库?
另外我前段时间听说语言在GCed /非GCed代码的边界上存在问题.我在D网站上找不到任何关于它的参考,这个问题仍然是正确的吗?
像Haskell(或Nemerle)这样的语言有quasiquotations.我想知道"准"是什么意思,如果没有"准"部分也存在"引用".
haskell programming-languages metaprogramming quoting nemerle