Julia语言

Julia 字符串连接

2018-09-19  本文已影响48人  Julia语言

微信公众号:Julia语言
每周一三五更新Julia语言
每周二四六更新Python进阶

字符串连接

字符串连接是最常用的操作:

julia> greet = "Hello"
"Hello"

julia> whom = "world"
"world"

julia> string(greet, ", ", whom, ".\n")
"Hello, world.\n"

重要的是要注意潜在的危险情况,例如无效的UTF-8字符串的连接。 结果字符串可能包含与输入字符串不同的字符,并且其字符数可能低于连接字符串的字符数之和,例如:

julia> a, b = "\xe2\x88", "\x80"
("\xe2\x88", "\x80")

julia> c = a*b
"∀"

julia> collect.([a, b, c])
3-element Array{Array{Char,1},1}:
 ['\xe2\x88']
 ['\x80']
 ['∀']

julia> length.([a, b, c])
3-element Array{Int64,1}:
 1
 1
 1

只有无效的UTF-8字符串才会出现这种情况。 对于有效的UTF-8字符串,串联保留字符串中的所有字符以及字符串长度的可加性。

Julia 允许使用 * 来连接字符串文本:

julia> greet * ", " * whom * ".\n"
"Hello, world.\n"

虽然*对于为字符串连接提供+的语言的用户来说似乎是一个令人惊讶的选择,但这种*的使用在数学方面具有先例,特别是在抽象代数中。

在数学中,+通常表示可交换操作,其中操作数的顺序无关紧要。 这种情况的一个例子是矩阵加法,其中对于具有相同形状的任何矩阵A和B,A + B == B + A. 相反,*通常表示非交换操作,其中操作数的顺序很重要。 一个例子是矩阵乘法,其中一般A * B!= B * A.与矩阵乘法一样,字符串连接是非交换的:问候* who!= who * greet。 因此,对于中缀字符串连接运算符来说,*是更自然的选择,与常见的数学用法一致。

欢迎关注微信公众账号Julia语言.jpg

点击阅读原文可查看历史文章

上一篇 下一篇

猜你喜欢

热点阅读