Używając Julia, chciałbym niezawodnie przekonwertować dowolny typ na typ String
. Wydaje się, że są dwie metody konwersji w wersji v0.5: albo string
albo konstruktor String
. Problem polega na tym, że musisz wybrać właściwy, w zależności od typu wejścia.Jak przekonwertować dowolny typ na String w Julia
Na przykład typeof(string(1))
ocenia się na String
, ale String(1)
zgłasza błąd. Z drugiej strony, typeof(string(SubString{String}("a")))
ocenia się na Substring{String}
, która nie jest podtypem String
. Zamiast tego musimy wykonać String(SubString{String}("a"))
.
Więc wydaje się, że jedynym wiarygodnym sposobem na konwersję dowolnego wejścia x
wpisać String
jest poprzez konstruktu:
String(string(x))
który czuje się nieco kłopotliwe.
Czy tu czegoś brakuje?
Dlaczego trzeba 'String' przy wykluczeniu wszystkich innych' AbstractString's? Idealnie nie powinieneś dbać o dokładny typ łańcucha. –
@MattB. Nie ma żadnego powodu, dla którego zauważyłeś, że powinienem używać 'AbstractString' w moich definicjach typów ... :-) Dla zachowania kompletności, oznacza to, że' String (string (x)) 'jest najbardziej niezawodny sposób na uzyskanie typu "String"? –