使用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))
感觉有点麻烦。
我在这里遗漏了什么吗?
答案 0 :(得分: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"