我的目标是从一个列表中获取一个随机表情符号,使用F#编程语言。
我从以下代码开始:
let pickOne (icons: string) : char = icons.[Helpers.random.Next(icons.Length)]
let happySymbols = ""
let sadSymbols = ""
这不起作用的原因是:
"".Length
当使用length函数计算字符串长度时,它会返回字符数,而这种方式无法正确处理Unicode字符。如果将字符串中添加一些单字节字符,就不能简单地将其除以2。
另外,索引也无法解决这个问题:
let a = ""
a.[0]
程序不会返回,但我收到了一些未知字符符号。
因此,计划B是:让我们将它变成一个数组而不是一个字符串:
let a = [| ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; ''; '' |]
这段代码无法编译,我得到了以下错误:
解析错误:绑定中出现意外的引号符。期望'|]'或其他令牌。
为什么会这样呢?
不管怎样,我可以制作一个字符串列表并使其正常工作,但我很好奇:是否有一种“正确”的方法可以让第一个代码段正常工作,并从Unicode字符串中获取随机的Unicode字符?