ক্লোজার কীওয়ার্ডকে স্ট্রিংয়ে কীভাবে রূপান্তর করবেন?


101

আমার অ্যাপ্লিকেশনটিতে আমার ক্লোজার কিওয়ার্ড যেমন রূপান্তর করা দরকার। : var_name একটি স্ট্রিং "var_name" এ। কোনও ধারণা কীভাবে এটি করা যেতে পারে?

উত্তর:


167
user=> (doc name)
-------------------------
clojure.core/name
([x])
  Returns the name String of a string, symbol or keyword.
nil
user=> (name :var_name)
"var_name"

4
আমি আরও সম্পূর্ণ উত্তর কল্পনা করতে পারি না, তবে কেবল মজা করার জন্য আমি কারও কাছে এটি নিয়ে আসার সাহস করব।
হামিশ গ্রুবিজন

4
@ হামিশ সম্ভবত যোগ করে (source name)?
ponzao

4
কীভাবে nameকাজগুলি আগ্রহী হওয়া উচিত নয়। ডকস্ট্রিং চুক্তি। অন্য যে কোনও কিছুই বাস্তবায়নের বিশদ, এর উপর নির্ভর করা উচিত নয়।
কোটারাক

4
ধন্যবাদ কোতারক! আমি এই ক্লোজারকে প্রতিদিন আরও ভালবাসি! এটি আমার তৃতীয় দিন।
সন্তোষ

4
সম্ভবত এই উত্তরের ব্যাখ্যা দেওয়া উচিত কেন (name :foo/123/bar)"বার"। আপনি যদি কোনও কীওয়ার্ডের পুরো পথটি চান subsবা আপনাকে এমন কিছু ব্যবহার করতে হবে(str (namespace k) "/" (name k))
AnnanFay

13

আসলে, কোনও কীওয়ার্ডের নাম স্থানটি পাওয়া ঠিক তত সহজ:

(name :foo/bar)  => "bar"
(namespace :foo/bar) => "foo"

নোট করুন যে একাধিক বিভাগের সাথে নামের স্থানগুলি একটি '।' দিয়ে আলাদা করা হয়েছে, '/' নয়

(namespace :foo/bar/baz) => throws exception: Invalid token: :foo/bar/baz
(namespace :foo.bar/baz) => "foo.bar"

এবং এটি নেমস্পেসের যোগ্য কীওয়ার্ডগুলির সাথেও কাজ করে:

;; assuming in the namespace foo.bar
(namespace ::baz) => "foo.bar"  
(name ::baz) => "baz"

12

নোট করুন যে কোটারকের উত্তর কীওয়ার্ডের নাম স্থানটি কেবল নামের অংশটি ফিরিয়ে দেবে না - তাই:

(name :foo/bar)
>"bar"

তার অন্যান্য মন্তব্য ব্যবহার করে আপনি যা চেয়েছিলেন তা দেয়:

(subs (str :foo/bar) 1)
>"foo/bar"

0

কোনও ডাটা টাইপকে স্ট্রিংয়ে রূপান্তর করা কোনও ক্লান্তিকর কাজ নয়, এখানে str ব্যবহার করে উদাহরণ দেওয়া হয়েছে ।

(defn ConvertVectorToString []
 (let [vector [1 2 3 4]]
 (def toString (str vector)))
  (println toString)
  (println (type toString)
(let [KeyWordExample (keyword 10)]
 (def ConvertKeywordToString (str KeyWordExample)))
  (println ConvertKeywordToString)
  (println (type ConvertKeywordToString))

(ConvertVectorToString) ;;Calling ConvertVectorToString Function

Output will be:
1234
java.lang.string
10
java.lang.string

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.