julia - Julia 1.0 中的子字符串与字符比较违反直觉

标签 julia

我是 Julia 语言的新手,在将子字符串与字符进行比较时看到了一些奇怪的行为。

我认为至少下面的第一个比较应该评估为 true .

有人可以告诉我如何比较这两个值并(奖励)指出为什么会出现这种违反直觉的结果?

julia> sq = "abcd"

julia> sq[1] == "a"
false

julia> isequal(sq[1],"a")
false

最佳答案

sq[1]返回 Char .使用 sq[1:1]获得 String .

你可以查什么sq[1]在 REPL 中返回:

julia> sq[1]
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)

所以你有了:
julia> sq[1] == 'a'
true

相比之下 CharChar .

另一方面与 sq[1:1]你有:
julia> sq[1:1]
"a"

julia> sq[1:1] == "a"
true

这种行为的原因是字符串被视为集合。同样,如果您有一个数组 x = [1,2,3]你没想到x[1] == [1]而是x[1] == 1 .

关于julia - Julia 1.0 中的子字符串与字符比较违反直觉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52555271/

相关文章:

file-io - Julia -写入文件的开头

julia - 在 Julia 中创建 Haskell 的任何类型的类似物

julia - 如何在本地 Julia 环境中将默认 Float 更改为 Float32?

python - 让 PyC​​all 与 Julia 和 Enthought 的 Canopy 一起工作

dataframe - 从 Postgres 检索时如何防止 DataFrame 中的列成为小数

python - 用编译的 Julia 打包 Python?

arrays - 你能在 Julia 中为字符串预分配空间吗?

julia - include 到底是做什么的?

julia - 使用 = 运算符在 Julia 中创建副本

julia - Julia 在 R 中的等效命名向量是什么?