如何在 Scala 中表示一个空字符?

Posted

技术标签:

【中文标题】如何在 Scala 中表示一个空字符?【英文标题】:How do I represent an empty Char in Scala? 【发布时间】:2012-01-08 12:21:54 【问题描述】:
val mychar=''

不编译并导致以下错误:

错误:未闭合的字符文字

val mychar='a'

等都很好。我尝试过将“”转换为字符,但运气不佳

【问题讨论】:

这不是 scala 特定的。你在java中试过这个吗?您是否正在寻找未初始化字符的默认值?由于 java 有原始类型: char a; print(a) 会将 int 值 0 分配给 a ,它分别是 char 映射。所以明智地 Option[Char] 是一个好方法。 None 为空,非初始化值和其他所有 Some(a) 【参考方案1】:

没有“空”字符之类的东西——什么是“空”整数? :)

最接近的是NUL-character,它的序数值为0('\0'0.toChar0: Char)...

...或者Option[Char] 可以更好地描述这种情况?

val someChar = Some('a')
val noChar = None: Option[Char]
val maybeChar = List(someChar, noChar)((Math.random * 2).toInt)
// ...

编码愉快。

【讨论】:

∅ 对您的第一个陈述提出异议。 @Kim:我认为他在谈论来自 Scalaz 的 函数。 assert('\0' == 0) 通过所以val mychar: Char = 0 也可以使用 @missingfaktor,这很有趣。我的第一条评论只是对“空”有一个 unicode 符号这一事实的一个恶作剧。也许我应该说“没有空字符这样的东西 - '嘿,我存在!' - 签名空字符∅"...Kim 然后回答似乎是一个反驳 - 我不明白。然后你进来并指出scalaz中实际上有一个∅方法!当然,你是对的! 'A' |+| ∅[Char] 返回'A'。我的评论不值得任何赞成,你的。 @huynhjl:我说的是空集,它既不是字符也不是整数。而且由于它没有任何成员,所有成员(即没有)都对第一个语句提出异议。【参考方案2】:

我正在尝试同样的事情,我必须返回空字符或类似的东西''所以我在 val c : char = '\0' 时做了什么

val c : char = " ".charAt(0) 

【讨论】:

以上是关于如何在 Scala 中表示一个空字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GADT 中表示此 FSM

如何在字符串中表示逗号? [复制]

在Delphi中 如何在字符串中表示 CTRL+ENTER 组合键?

如何在 Python 函数结果中表示“未找到索引”

如果它们来自数据源,如何在 graphql 模式中表示枚举?

如何在 Springdoc Swagger v3 中表示字符串列表?