您可以为 None 指定类型参数或告诉编译器它是一个 Option[String] 吗?

2024-06-19

我想知道我是否可以在我的代码中写这样的东西:

None[String]

我很惊讶没有人提到它的存在Option.empty:

scala> Option.empty[String]
res0: Option[String] = None

请注意,在许多情况下只需使用None其中一个Option[String]预计会正常工作。 或者换句话说,(如 Aleksey Izmailov 所示),以下是正确的:

def f(o: Option[String]) = ...; f(None)

这是因为None延伸Option[Nothing],所以凭借Option是协变的(并且Nothing是所有其他类型的子类型),None始终兼容Option[T]对于任何T.

这也是为什么类型归属也是一个很好的选择(对于您确实需要明确选项类型的情况,例如,如果需要驱动类型推断):

scala> None: Option[String]
res0: Option[String] = None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您可以为 None 指定类型参数或告诉编译器它是一个 Option[String] 吗? 的相关文章

随机推荐

  • 图邻接表表示

    我正在尝试用 c 语言编写一个基本的图形程序 但是 会显示一条错误消息 指出The arrayOfVertices is undeclared 我正在使用邻接列表表示 代码是 include
  • 选中复选框时展开 Div

    我有一个复选框
  • getStyledAttributes 工作错误

    我正在尝试创建自己的键盘 使用 Android 键盘不足以完成我的任务 因此我决定直接从 View class 创建继承类 作为基础 我决定使用 Keyboard class 的代码 然后开始一一更改 我什至在尝试编译该类 使用一些反射和黑
  • Python内置容器是线程安全的吗?

    我想知道Python内置容器 列表 向量 集合 是否是线程安全的 或者我是否需要为我的共享变量实现锁定 解锁环境 您需要为将在 Python 中修改的所有共享变量实现自己的锁定 您不必担心从不会被修改的变量中读取 即并发读取是可以的 因此不
  • 如何在没有Intent的情况下更改android中整个系统的语言设置?

    我正在尝试更改语言Android手机全系统在我的应用程序上 因为我们的目标是定制一个设置应用程序 我已经尝试过这个 但没有成功 Configuration conf Resources getSystem getConfiguration
  • 从 python 中的动态 mpld3 图中检索数据

    我想更新用于创建 mpld3 生成的 python matplotlib 列表图的输入数据 实际上 我有与此处发布的相同的问题 拖动后获取点信息 https stackoverflow com questions 24498322 mpld
  • 微服务与 SOA 的不同之处 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我一直在寻找 SOA 和微服务架构风格之间的差异 并找到了一个很好的链接https www infoq com articles boot mi
  • 防止按下回车键时提交表单[重复]

    这个问题在这里已经有答案了 我们如何防止按下回车键时提交表单 实际上我有一个文本框 在该文本框中输入一个值并单击输入时 textbox2 将获得焦点 默认情况下 单击输入按钮后将提交表单 所以我无法得到输出 我在提交按钮的 onclick
  • 如何使用 WKWebView 正确实施身份验证质询?

    我正在构建一个网络浏览器 但在网络方面我真的是新手 我想测试下面的代码示例 但我没有现实生活中的示例可以使用 void webView WKWebView webView didReceiveAuthenticationChallenge
  • 该变量未声明或从未分配警告

    这是基类 public class BaseClass UserControl protected ListView list protected TreeView tree public BaseClass 儿童班 public part
  • router.navigate 不起作用(Angular6,延迟加载)

    我是 Angular 4 的新手 目前使用 v 6 我一直在尝试使用this router navigate 登陆 从登录组件重定向到登陆组件的功能 它无法正常工作 它将显示登录页面一秒钟 然后再次重定向回登录页面 但是 例如 如果我尝试浏
  • 在 for 循环中修改列表元素

    我有一个清单a我想更改其元素a i j 根据一个函数f 我能比天真的方式做得更好吗 for index in range i j a index f a 我所说的更好是指更接近于map f a 或者更快的东西 您可以分配给切片 a i j
  • 用于验证 ip 列表中的 ip 范围的正则表达式

    我有正则表达式用于验证 50 个 ips 逗号分隔的列表 25 0 5 2 0 4 0 9 01 0 9 0 9 3 25 0 5 2 0 4 0 9 01 0 9 0 9 1 50 列表示例 10 10 10 1 127 0 0 1 现在
  • extern 关键字对 C 函数的影响

    在C中 我没有注意到任何影响extern在函数声明之前使用关键字 起初 我认为在定义时extern int f 在单个文件中forces您可以在文件范围之外实现它 然而我发现两者 extern int f int f return 0 an
  • 使用底格里斯河从纬度/经度获取人口普查区

    我有相对较多的坐标 我想获取其人口普查区 除了 FIPS 代码 我知道我可以使用以下命令查找各个纬度 经度对call geolocator latlon 已完成here https stackoverflow com questions 5
  • 查找 Ivy 中隐藏的依赖项

    我使用 Apache Ivy IvyDE 来获取项目的依赖项 它们是
  • UITableViewCell 的 viewDidAppear

    我通常使用viewDidAppear方法在视图完成出现后在视图上执行一些 UI 操作 我在各种情况下使用了此方法 它非常有用 但是 我需要在视图上进行一些 UI 更改UITableViewCell当它完成出现后 SDK中是否有任何可用的方法
  • CSS3 中均匀间隔的导航链接占据 ul 的整个宽度

    我想创建一个水平导航链接列表 其中导航链接均匀分布并占据封闭容器的整个宽度 ul 导航链接可以有不同的宽度 第一个和最后一个链接应与链接的开头和结尾对齐 ul 分别 意味着链接不居中 如下所示 left side right side li
  • UI图像位置

    我使用以下代码在 UIView 中放置一些图像 UIImage image UIGraphicsBeginImageContext CGSizeMake 480 320 int k 0 int posY 0 for int i 0 i lt
  • 您可以为 None 指定类型参数或告诉编译器它是一个 Option[String] 吗?

    我想知道我是否可以在我的代码中写这样的东西 None String 我很惊讶没有人提到它的存在Option empty scala gt Option empty String res0 Option String None 请注意 在许多