W mojej aplikacji muszę przekonwertować słowo kluczowe clojure np. : nazwa_zmiennej w łańcuchu "nazwa_zmiennej". Jakieś pomysły, jak to zrobić?Jak przekonwertować słowo kluczowe clojure na ciąg znaków?
88
A
Odpowiedz
147
user=> (doc name)
-------------------------
clojure.core/name
([x])
Returns the name String of a string, symbol or keyword.
nil
user=> (name :var_name)
"var_name"
8
Uwaga odpowiedź, że kotarak nie zwróci część przestrzeni nazw słów kluczowych, tylko nazwa część - tak:
(name :foo/bar)
>"bar"
wykorzystaniem jego drugim komentarzu daje to, co prosiłeś:
(subs (str :foo/bar) 1)
>"foo/bar"
11
W rzeczywistości równie łatwo można uzyskać część nazwy słowa kluczowego:
(name :foo/bar) => "bar"
(namespace :foo/bar) => "foo"
Zauważmy, że przestrzenie nazw z wieloma segmentami są oddzielone, a nie «/»
(namespace :foo/bar/baz) => throws exception: Invalid token: :foo/bar/baz
(namespace :foo.bar/baz) => "foo.bar"
I to działa również z nazw wykwalifikowani słowa kluczowe „”:
;; assuming in the namespace foo.bar
(namespace ::baz) => "foo.bar"
(name ::baz) => "baz"
0
To również daje ciąg znaków od słowa kluczowego:
(str (name :baz)) -> "baz"
(str (name ::baz)) -> "baz"
+1
' str' nie jest potrzebne w twoim przykładzie. – Vincent
Powiązane problemy
- 1. Jak przekonwertować ciąg znaków na funkcję w Clojure?
- 2. Jak przekonwertować ciąg znaków na znak Unicode?
- 3. Jak przekonwertować ciąg znaków na obiekt BinaryExpression?
- 4. Jak przekonwertować boolean na zlokalizowany ciąg znaków
- 5. Jak przekonwertować zwrot WebResponse.GetResponseStream na ciąg znaków?
- 6. Jak przekonwertować ciąg znaków na liczbę dziesiętną?
- 7. Jak przekonwertować część tablicy znaków na ciąg znaków
- 8. Jak przekonwertować ArrayList na ciąg znaków (ciąg []) w C#
- 9. Jak przekonwertować ciąg znaków szesnastkowy na ciąg bajtów w Perlu?
- 10. Potrzebuję przekonwertować ciąg znaków XML na XmlElement
- 11. Jak wymusić słowo kluczowe "zastąp"?
- 12. podświetlić słowo w łańcuchu, jeśli zawiera ono słowo kluczowe
- 13. F # - Jakie jest słowo kluczowe "to"?
- 14. Jak przekonwertować ciąg na NSData
- 15. Go „to” -słowo kluczowe
- 16. Jak przekonwertować ciąg na bitset?
- 17. Jak przekonwertować kod Unicode na ciąg znaków na poziomie Python?
- 18. przekonwertować ciąg Unicode zbiegłego ciąg znaków ASCII
- 19. JavaScript "argumenty" Słowo kluczowe
- 20. Jak przekonwertować ciąg na android.net.Uri
- 21. Jak przekonwertować ciąg znaków taki jak "Czerwony" na System.Windows.Media.Color?
- 22. PID z ps -ef | grep słowo kluczowe
- 23. Jak przekonwertować tablicę znaków na tablicę znaków?
- 24. Słowo kluczowe aktywowane rozpoznawanie mowy na Androidzie
- 25. Jak przekonwertować ciąg znaków na prawidłową nazwę zmiennej w python?
- 26. Jak przekonwertować ciąg znaków na nazwę atrybutu obiektu?
- 27. Jak przekonwertować ciąg znaków UTF8 na tablicę bajtów?
- 28. Jak przekonwertować ciąg znaków na wykonywalny wiersz kodu w JavaScript?
- 29. Jak przekonwertować ciąg znaków na UTF8 w Ruby
- 30. Jak przekonwertować ciąg znaków UTF-8 na wielkie litery?
Nie mogę sobie wyobrazić bardziej kompletnej odpowiedzi, ale dla zabawy odważę się, aby ktoś wymyślił to. –
@Hamish Być może dodając '(nazwa źródła)'? – ponzao
Sposób działania imienia "nazwa" nie powinien być przedmiotem zainteresowania. Docstring jest umową. Coś jeszcze jest szczegółem implementacji, na którym nie należy polegać. – kotarak