如何在 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.toChar
、0: 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 中表示一个空字符?的主要内容,如果未能解决你的问题,请参考以下文章
在Delphi中 如何在字符串中表示 CTRL+ENTER 组合键?