如何在Julia中将任何类型转换为String

Col*_*ers 9 julia

使用Julia,我想可靠地将任何类型转换为类型String.似乎有两种方法可以在v0.5中进行转换,无论是string函数还是String构造函数.问题是您需要根据输入类型选择正确的一个.

例如,typeof(string(1))求值为String,但String(1)会引发错误.另一方面,typeof(string(SubString{String}("a")))求值为Substring{String},不是子类型String.我们需要这样做String(SubString{String}("a")).

所以似乎将任何输入转换x为类型的唯一可靠方法String是通过构造:

String(string(x))
Run Code Online (Sandbox Code Playgroud)

感觉有点麻烦.

我在这里错过了什么吗?

Fen*_*ang 5

您应该很少需要显式转换为String.请注意,即使您的类型定义包含String字段,或者您的数组具有具体的元素类型String,您仍然可以依赖隐式转换.

例如,以下是隐式转换的示例:

type TestType
    field::String
end

obj = TestType(split("x y")[1])  # construct TestType with a SubString
obj.field  # the String "x"

obj.field = SubString("Hello", 1, 3)  # assign a SubString
obj.field  # the String "Hel"
Run Code Online (Sandbox Code Playgroud)