2015-01-07 37 views
7

Juliaで文字列と整数値を連結する最も簡単な方法は何ですか?私はジュリアとひどく慣れないんだけど、私はあなたが文字列の補間としたほうが良いだろうと信じてJulia:文字列と整数を連結する

julia> foo = "test: " 
"test: " 

julia> bar = 3 
3 

julia> foobar = foo * bar 
ERROR: `*` has no method matching *(::ASCIIString, ::Int64) 

答えて

19

"test: $bar" 

または交互:

私のような何かをしたいと思います
string("test: ", bar) 

それとも、あなたが*演算子を使用したいなかった場合、私はあなたがしたいと思う信じる:

"test: " * string(bar) 
+0

おかげで、私にとっては最後のオプションは、私が考える最も有用な1 –

+0

のようです文字列を含むものがパフォーマンスのために最適である必要があります。 –

+1

@DavidPanders 'string'と文字列補間は同等です。 –

7

あなたはUnion{String, Number}タイプに複数のディスパッチを使用して、新しい方法で*一般的な機能を拡張することができます。

julia> VERSION 
v"0.6.0-rc1.0" 

julia> * 
* (generic function with 181 methods) 

julia> const StrNum = Union{String, Number} 
Union{Number, String} 

julia> import Base: * 

julia> Base.:*(x::StrNum, y::StrNum) = string(x, y) 

julia> 4 * "2" 
"42" 

julia> "4" * 2 
"42" 
+0

私はジュリアを初めて知りました。 '' println(foo、bar) ''が悪い考えであるかどうかを説明しますか? OPの目標を達成していない。ありがとう。 – PatrickT

+1

@PatrickT 'println'は攪拌を出力し、' nothing'を返します。 'string'は文字列を返しますが、印刷しませんが、REPLは常に最後の値を表示します。文字列を返すことは、それを印刷するよりも便利です。特に操作を続けたい場合に特に便利です。これは、OPが自分の '*' mehtodをどのように定義したか、単に 'string'を代わりに使用する方法の例です。 – SalchiPapa

+0

ありがとうございました! :-) – PatrickT