2016-07-30 2 views
2

私はジュリア(バージョン0.4.6)を使用しています、と私は試してみました方法は次のとおりです。長いと厄介に見えるJuliaのIntをStringに変換する最適な方法は何ですか?

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

私が試みたもう1つの方法は、ファイルに書き込んでからそれを読むことです。これは明らかに悪化しています。私は、お勧めの方法があるのだろうかと思います。

答えて

8

私はあなたの構文で*"b"で達成しようとしているのかわからないんだけど、それの残りの部分:

julia> a = 123 
123 

julia> string(a) 
"123" 

julia> println(a) 
123 

string()機能はまた、より多くの引数を取ることができます。

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

IntタイプをASCIIStringに変換する前にprintln()を呼び出す必要はありません。変換は自動的に行われます。

また$を使用して文字列に(別名補間)の整数(および特定の他のタイプ)を挿入することができます

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

パフォーマンスのヒントを:上記の方法は、時には非常に便利です。しかし、あなたがたくさんのそのような操作を行い、あなたのコードの実行速度を心配しているなら、Julia performance guideはこれに対して、代わりに以下のメソッドを推奨します:

print()

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

または、ファイルへの書き込み時に、あなたが同様に使用することができ、例えば:string()は複数の引数で動作するように正確にそれらの上で動作し、println()

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()'は文字列補間と同じくらい遅いことに注意してください。実際には、文字列補間は実際に 'string'呼び出しまで下がります!リンクされたパフォーマンスガイドではIO関数を直接使用することを推奨していますが、これは確かに高速です。 –

+0

@FengyangWang素晴らしい、チップのおかげで!私はそれに応じて更新しました。 –

関連する問題