Julia:连接字符串和整数

Julia: concatenate string and integer

在 Julia 中连接字符串和整数值的最简单方法是什么?我想做类似的事情:

julia> foo = "test: "
"test: "

julia> bar = 3
3

julia> foobar = foo * bar
ERROR: `*` has no method matching *(::ASCIIString, ::Int64)

我不是很熟悉 Julia,但我相信你最好使用字符串插值:

"test: $bar"

或者:

string("test: ", bar)

或者,如果您确实想使用 * 运算符,我相信您会想要:

"test: " * string(bar)

您可以使用新方法扩展 * 泛型函数,对 Union{String, Number} 类型使用多重分派:

julia> VERSION
v"0.6.0-rc1.0"

julia> *
* (generic function with 181 methods)

julia> const StrNum = Union{String, Number}
Union{Number, String}

julia> import Base: *

julia> Base.:*(x::StrNum, y::StrNum) = string(x, y)

julia> 4 * "2"
"42"

julia> "4" * 2
"42"