2016-08-11 19 views
2

Pythonでは、ifは、オプションの文字列書式設定では次のような状況で使用できます。ジュリア文字列形式if "

bar = 3 
"{n} bar{s}".format(n=bar, s='s' if bar != 1 else '') 
# "3 bars" 

bar = 1 
"{n} bar{s}".format(n=bar, s='s' if bar != 1 else '') 
# "1 bar" 

Juliaは、文字列の書式設定にドル記号を使用します。

foo = 3 
"foo $foo" # "foo 3" 

Juliaを使用してPythonコードの機能を単純にミラーリングすることはできますか?

+2

はい。 '$'補間方法は、パラメンテーシスの式で動作します。この場合、 '' $ bar bar $(bar!= 1? '': "") "'はPythonの結果と同じです。 –

+0

@DanGetzこれは完全に動作します。これを回答として追加すると、非常に感謝します。この問題を解決し、あなたの解決策を正しいとマークすることが大好きです。 – 2Cubed

+1

Pythonのインラインはjulia(とC言語と他の言語)の三項文です。 Python 'a if b else c'はjuliaの' b? a:c' (そしてLuaの 'bとaまたはc'に相当) –

答えて

5

はい。 $補間方法は、かっこ内の式で機能します。この場合、$bar bar$(bar != 1 ? 's' : "")はPythonの結果と同等です。

@Oxinaboxで述べたように、PythonのインラインifはJuliaの三項演算子に対応しています。 Juliaでは、三元演算子a ? b : cif a b ; else c ; endの便利なショートカットです。これは、1==2 ? foo() : bar()foo()を評価しないことに注意してください。

2

@DanGetzさんによると、Formatting packageをチェックしてみることもできます。これは、JuliaのPythonライクな書式設定機能を提供するように明示的に設計されています。

+0

[printfmt]は[この質問]のように行列を作成するために使用できます(http://stackoverflow.com/questions/38819425/how-to -sp-float-in-juliaの印刷用フォーマット)が尋ねます。 –