相关疑难解决方法(0)

Scala中语法糖的所有实例是什么?

Scala中语法糖的所有实例是什么?

它们很难搜索,因为它们中的大部分/全部都是纯符号,因此在不知道概念名称的情况下难以搜索.

去做:

  • 隐含的转换
  • _ 匿名函数的语法
  • 其他我忘记的事情

scala syntactic-sugar

63
推荐指数
6
解决办法
1万
查看次数

Scala"< - "用于理解

我发现Scala总是对任何东西都有"自然的解释".总是像"哦,但这只是一个函数被调用此函数和该对象与此参数".从某种意义上说,我们从其他语言中知道它并不是真正的编译器魔法.

我的问题是在以下代码中使用的< -运算符:

for(i <- 0 to 10) println(i)
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我可以看到它被重写为:

0.to(10).foreach((i:Int)=>println(i))
Run Code Online (Sandbox Code Playgroud)

但这并没有解释如何进入foreach函数内的匿名函数.在你写i的时候,它不是一个对象,也不是一个声明的变量.那是什么呢,它是如何被带到foreach的内部的呢?

我的猜测是,我终于发现了一些实际上是编译魔术的东西

谢谢你的时间.

为了澄清,我的问题是:如何做的< -在代码的第一线操作人员的工作,因为我不上它可作为函数调用的对象.

loops scala compiler-theory for-comprehension

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

Scala是否具有少量的底层语法功能?

Scala是一种有趣的语言,声称简洁,可扩展(通过在库中指定许多功能而不是编译器),并支持DSL.在尝试实现这一目标时,它有许多运算符和编译器调整(例如,支持中缀运算符,例如:_*以展平序列).

我发现很多运算符('Scala编程'索引中的2½页)和编译器调整令人困惑.公平地说,许多运算符是从C等人那里借来的传统算术/布尔运算符.

我被告知支撑这个有一些基本的句法规则,我认为如果我知道这些会降低我的认知负担.

是否有一些规则(如果是这样的话是什么)或者我注定要学习图书馆中的许多"操作员"方法和含义?

scala

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

scala相当于python __getattr__/__setattr__

是否有scala等效的python __getattr__ / __setattr__(以及其他__*__方法?).有些东西是内置的还是一些特征?

python scala properties dynamic getter-setter

4
推荐指数
1
解决办法
926
查看次数

一种模拟Scala中Class的索引访问的方法

如何实现一个可以像Array一样提问的类,提供索引的setter?

喜欢:

val k = new MyKls(size)
k(0) = 2  //<<-- I want this kind of functionality.
Run Code Online (Sandbox Code Playgroud)

谢谢.

scala

3
推荐指数
1
解决办法
130
查看次数