2016-07-30 66 views
2

我使用朱莉婭(0.4.6版本),我已經試過的方法是:在Julia中將Int轉換爲字符串的最佳方式是什麼?

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

它看起來長和尷尬。

我試過的另一種方法是將它寫入一個文件,然後讀取它。這顯然更糟。我想知道是否有推薦的方法。

回答

8

我不知道你想在你的語法*"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非常感謝您的提示!我已經相應更新。 –

相關問題