在Julia中将Int转换为字符串的最佳方式是什么?

问题描述:

我使用朱莉娅(0.4.6版本),我已经试过的方法是:在Julia中将Int转换为字符串的最佳方式是什么?

a = 123 
println( string(Int(a))*"b" ) 

它看起来长和尴尬。

我试过的另一种方法是将它写入一个文件,然后读取它。这显然更糟。我想知道是否有推荐的方法。

我不知道你想在你的语法*"b"完成什么,但对于它的其余部分:

julia> a = 123 
123 

julia> string(a) 
"123" 

julia> println(a) 
123 

string()功能也可以采取更多的参数:

julia> string(a, "b") 
"123b" 

请注意,在调用println()之前,没有必要将Int类型转换为ASCIIString - 转换将自动进行。

您还可以插入(又名插值)的整数(和某些其他类型)到使用$字符串:

julia> MyString = "my integer is $a" 
"my integer is 123" 

性能提示:上述方法有时可能比较方便。但是,如果您将执行许多此类操作,并且您担心代码的执行速度,Julia performance guide建议不要这样做,而应该采用以下方法:

您可以将多个参数提供给print()println()将它们准确地操作为string()对多个参数进行操作:

julia> println(a, "b") 
123b 

或者写入文件时,你同样可以使用,例如,

open("/path/to/MyFile.txt", "w") do file 
    println(file, a, "b", 13) 
end 

file = open("/path/to/MyFile.txt", "a") 
println(file, a, "b", 13) 
close(file) 

这些是更快,因为它们避免需要首先形成由给定的片,然后将其输出(或者到控制台显示器或一个文件),而是仅仅顺序地输出一个字符串各种件。

注意:答案反映了基于@Fengyang Wang的有用评论的更新。

+2

很好的答案。请注意'string()'和字符串插值一样慢。实际上,字符串插值实际上会降低到“字符串”调用!链接的性能指南建议直接使用IO功能,这确实更快。 –

+0

@FenggyangWang非常感谢您的提示!我已经相应更新。 –