在Julia中将Int转换为String的最佳方法是什么?

zyc*_*zyc 2 string types julia

我正在使用Julia(版本0.4.6),我尝试过的方法是:

a = 123 
println(  string(Int(a))*"b"  )
Run Code Online (Sandbox Code Playgroud)

这看起来很长很尴尬.

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

Mic*_*gge 8

我不确定你*"b"在语法中想要完成什么,但对于其余部分:

julia> a = 123
123

julia> string(a)
"123"

julia> println(a)
123
Run Code Online (Sandbox Code Playgroud)

string()函数也可以采用更多参数:

julia> string(a, "b")
"123b"
Run Code Online (Sandbox Code Playgroud)

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

您还可以使用以下命令将(也称为插值)整数(以及某些其他类型)插入到字符串中$:

julia> MyString = "my integer is $a"
"my integer is 123"
Run Code Online (Sandbox Code Playgroud)

性能提示:上述方法有时非常方便.但是,如果您将执行许多此类操作并且您担心代码的执行速度,那么Julia 性能指南建议不要这样做,而是支持以下方法:

您可以提供多个参数print(),println()这些参数将对它们进行string()操作,与多个参数的操作完全相同:

julia> println(a, "b")
123b
Run Code Online (Sandbox Code Playgroud)

或者,在写入文件时,您可以类似地使用,例如

open("/path/to/MyFile.txt", "w") do file
    println(file, a, "b", 13)
end
Run Code Online (Sandbox Code Playgroud)

要么

file = open("/path/to/MyFile.txt", "a")
println(file, a, "b", 13)
close(file)
Run Code Online (Sandbox Code Playgroud)

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

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

  • 很好的答案.注意`string()`和字符串插值一样慢.实际上,字符串插值实际上会降低到`string`调用!链接的性能指南建议直接使用IO功能,这确实更快. (2认同)