Scala对如何将语言功能实现为库功能做了大量工作.
是否有语言专门处理的类型列表?
在规范中还是作为实现细节?
这将包括,例如,优化远离元组的匹配.
那些与模式匹配,理解,try-catch块和其他语言结构相关的特殊约定呢?
字符串在某种程度上是特殊的编译器吗?我看到字符串增强只是一个库隐式转换,并且支持字符串连接Predef
,但是这种语言特别容易吗?
同样,我看到有关<:<
和classOf
和的问题asInstanceOf
,并且不清楚什么是神奇的内在.有没有办法通过编译器选项或查看字节代码来区分?
我想了解一下,如果某个功能是由Scala.JS和Scala-native等实现统一支持的,或者某个功能实际上可能证明是依赖于实现的,这取决于库的实现.
精美的Twitter util库具有以下Java类,该类由Scala类扩展,该类读取volatile字段并使用AtomicReferenceFieldUpdater对其进行更新.访问必须至少是私有的,即必须允许other.state.
评论中的动机主张是真的吗?太对了?("如何"意味着以何种方式和程度.)
public class IVarField<A> {
/** This is needed because we cannot create a field like this in Scala. */
volatile State<A> state;
}
Run Code Online (Sandbox Code Playgroud) 当我在for-comprehension中使用val时,我收到警告:
警告:不推荐使用val关键字for comprehension
尽管在规范的语法附录中生成了.
这表明当我做类似的事情时
for (x <- xs; a = x)
Run Code Online (Sandbox Code Playgroud)
我并没有真正引入一个变量,比如我做的事情
for (x <- xs) yield { implicit val a = x; /* more */ }
Run Code Online (Sandbox Code Playgroud)
像往常一样,大括号开始一个新的范围,我可以引入一个新的val,甚至是一个新的隐含.
我到底在做什么a
?
我在消耗堆栈空间吗?堆?其他一些别名?
我理解这些方法可能被认为是"等同的"或"同义词",尽管不是"相同的",根据诸如调用collection.size或collection.length和Scala Buffer 的最佳Scala约定之类的问题:大小或长度?.
但这是否意味着他们是一样的?
不要向我提供相同的意见或虚假的概念.告诉我他们什么时候不一样.
用坚硬的科学来支持你的主张!
字节代码就足够了.我对JIT特定的优化并不那么感兴趣.
我对世界目前的状况特别感兴趣,即最近的里程碑中的Scala 2.11.
我已经阅读了一些其他问题,例如Scala中下划线的所有用途是什么?虽然我确信这个问题已被提出,但我无法解决所有其他17000个Scala问题.
有一个Foreach有奇怪的行为,占位符没用,但它似乎仍然是一个隐藏的功能:
scala> val is = (1 to 5) toList
is: List[Int] = List(1, 2, 3, 4, 5)
scala> is foreach { i => println("Hi.") ; Console println 2 * i }
Hi.
2
Hi.
4
Hi.
6
Hi.
8
Hi.
10
scala> is foreach { println("Hi.") ; Console println 2 * _ }
Hi.
2
4
6
8
10
Run Code Online (Sandbox Code Playgroud)
请有人解释一下我的区别吗?
如果你感到一阵热情并尝试:
scala> is foreach { i => println("Hi!") ; Console println …
Run Code Online (Sandbox Code Playgroud) 我想知道在Java/Scala源代码中组织导入的首选/最常见的样式.我首先遵循java/scala导入的风格,然后是org.净.等等然后com.
import java.util....
import scala.collection...
import org.apache...
import net.liftweb.json
import com.mycompany...
Run Code Online (Sandbox Code Playgroud)
最近,我的一位队友提出了这种方法
- external libraries
- internal libraries
- scala
- java
Run Code Online (Sandbox Code Playgroud)
喜欢
import net.liftweb.json._
import com.mycompany.logging.Logger
import com.mycompany.api.Statsd
...
import scala.util.{ Try, Success, Failure }
import scala.concurrent.{ ExecutionContext, Future, Await }
import java.util.Date
Run Code Online (Sandbox Code Playgroud)
想知道SO人的意见.
马丁会怎么说?
(从而将这个问题置于纯粹意见的范围之外.对这个问题的答案是可以验证的.正如马丁所说,社区也是如此.)
保罗将如何回应?
众所周知,@ extempore已经对Scala代码库进行了大量的提交,只是为了scala
在前面添加,util
因为在存在名为的空目录时存在某种类型的包加载错误行为util
.
显然,这不是一个"软"的问题.
奖金问题:如果有的话,一个人放在哪里_root_
?