小编Set*_*sue的帖子

有没有办法在 Scala 中抑制*仅*详尽检查?

我发现自己写了很多这样的代码:


thing match {
   case Case1 ...
   case Case2 ...
   case _ => throw new IllegalStateException(s"unexpected $thing")
}
Run Code Online (Sandbox Code Playgroud)

有时,当案例不匹配时,我想要一个运行时错误。案例是一种形式的断言。

有没有更好的方法来抑制穷举检查?

我不想使用,[@unchecked](https://www.scala-lang.org/api/2.12.1/scala/unchecked.html)因为这也会禁用可达性检查,这是我想要的。

scala pattern-matching

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

在scala中按名称调用

两个问候方法都一样

object test {
  def greet = { println("hi")}                    //> greet: => Unit
  def greet1(f: => Unit)= {println("hi")}         //> greet1: (f: => Unit)Unit
}
Run Code Online (Sandbox Code Playgroud)

根据我的理解greet是一个函数,它不接受任何参数并返回Unit和参数按名称调用.而greet1是需要函数返回单位,也可以通过名字为它的参数调用的函数.很困惑,任何人都可以善解释这种差异.

scala

0
推荐指数
1
解决办法
113
查看次数

NetLogo中的错误:未定义任何名为x的内容

我从NetLogo导出了一个景观.我在Netlogo中导入了相同的格局.从这个角度来看,我添加了另一个特定于补丁"驻留时间"的全局变量:

globals [
list-of-polygons ]

patches-own [ 
area-ha
residency-time 
]
Run Code Online (Sandbox Code Playgroud)

我创建了一个函数来为我的横向中的每个多边形指定驻留时间值

to assign-residency-times
set list-of-polygons ([ID-polygon] of patches)
set list-of-polygons remove-duplicates list-of-polygons 
set list-of-polygons remove 0 list-of-polygons
print sort list-of-polygons

foreach list-of-polygons [ 
ask patches with [ ID-polygon = ? ] [ 
if all? patches [pcolor = green] [ 
set residency-time exp(1.02 * area-ha) ]

.... ] ]
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我有这个错误信息:Nothing named area-ha has been defined.但是,我定义了area-hadans patches-own.另外,当我检查补丁时,补丁特有的所有全局变量都消失了(见下图)!

在此输入图像描述

在此先感谢您的帮助.

netlogo

0
推荐指数
1
解决办法
1912
查看次数

使用Any vs特定参数类型是否有任何陷阱?

假设我要输出的方法的东西,在这种情况下,字符串或整数.我可以这样做:

def outString(str: String) {
    str // or "return str"
}
Run Code Online (Sandbox Code Playgroud)

并像这样运行: outString("foo")

但我也可以避免将特定类型初始化为参数,它会起作用:

def outString(str: Any) {
    str
}
Run Code Online (Sandbox Code Playgroud)

并运行它像这样:outString("foo")outString(123).

鉴于它们都工作并假设你并不总是知道所传递的Any参数的类型,使用特定参数类型是否有任何陷阱?是否Any做检查类似解释的语言也将减缓对代码进行任何类型的自动型的?

types arguments scala

0
推荐指数
1
解决办法
69
查看次数

为什么需要快递?cooursier 和 maven、sbt、gradle 有什么区别?

文档说,coursier 是 scala 的一个新的工件管理器。但是 Coursier 和 maven、sbt 和 gradle 等构建工具有什么区别呢?为什么我需要+1包含 jar 文件的文件夹?我已经有.m2Maven 存储库、.gradleGradle 和.sbtsbt。所以我构建了一些项目,现在我有了AppData/Local/Coursier“相同”的 jar 文件。有人可以解释一下项目的目标是什么吗Coursier

java scala maven sbt coursier

0
推荐指数
1
解决办法
517
查看次数

标签 统计

scala ×4

arguments ×1

coursier ×1

java ×1

maven ×1

netlogo ×1

pattern-matching ×1

sbt ×1

types ×1