作为Scala新手,我正在阅读书籍,文档,并尝试解决http://aperiodic.net/phil/scala/s-99/上发现的问题.似乎正确Scala代码基于不可变值(val)和递归而不是循环和变量,以使并行性更安全并避免需要使用锁.
例如,练习P22(http://aperiodic.net/phil/scala/s-99/p22.scala)的可能解决方案是:
// Recursive.
def rangeRecursive(start: Int, end: Int): List[Int] =
if (end < start) Nil
else start :: rangeRecursive(start + 1, end)
Run Code Online (Sandbox Code Playgroud)
当然这个代码是紧凑的并且看起来很聪明,但是,当然,如果递归的数量很高,你将面临StackOverflow错误(rangeRecusrsive(1,10000),例如没有JVM调整).如果你看一下内置List.range的源代码(https://github.com/scala/scala/blob/v2.9.2/src/library/scala/collection/immutable/List.scala#L1),你我会看到使用循环和变量.
我的问题是如何管理Scala学习内容的影响,这些内容正在促进val和递归,因为知道这些代码会因递归的数量而中断?
我为 Keycloak 制作了一个自定义主题,我想设置一个特定的领域以在登录页面使用该主题并在不使用管理控制台的情况下启用国际化,主要是因为我想让它自动作为基于 JSON 的领域创建进口。
JSON 文件似乎无法处理主题配置,有没有办法在没有任何人工操作的情况下进行此配置?