2016-11-22 3 views
2

Wenn eine Zeichenfolge Konstruktion ist es sehr einfach optionale Parameter enthalten:Optionale Parameter in Backticks Notation

julia> "Hallo $(true ? "Nils" : "")" 
"Hallo Nils" 
julia> "Hallo $(false ? "Nils" : "")" 
"Hallo " 

jedoch bei dem Versuch, die gleiche Technik auf die Backticks Notation anzuwenden (externe Befehle ausführen), die folgende Problem entsteht:

julia> `command $(true ? "--flag" : "")` 
`command --flag` 
julia> `command $(false ? "--flag" : "")` 
`command ''` 

im letzteren Fall den Befehl, den ich nicht ausführen, da es '' als ungültiger Parameter interpretates.

julia> `command $(false ? "--flag" : nothing)` 
`command nothing` 

funktioniert auch nicht, da Stichwort nothing in Text übersetzt wird.

Welche syntaktischen Optionen habe ich, um die Backtick-Notation mit optionalen Parametern zu verwenden?

Antwort

4

Verwenden Sie ein leeres Array. Strings werden immer auf ein Argument interpolieren, aber Arrays erweitern sich auf eine variable Anzahl von Argumenten (einschließlich möglicherweise 0 Argumente).

julia> `command $(false ? "--flag" : [])` 
`command`