string در Clojure همان رشتهی جاوا است؛ شیءای که متن تغییرناپذیر را بهصورت دنبالهای از کاراکترهای یونیکد (حروف، ارقام، نشانههای نگارشی و غیره) نمایش میدهد و به این صورت تعریف میشود:
(def fruit "Apple")
کتابخانهی clojure.string توابع استاندارد بسیاری برای دستکاری و پردازش رشته فراهم میکند. علاوه بر این، همهی متدهای معمول جاوا برای کار با رشتهها از طریق تعامل با جاوا در دسترساند.
در این تمرین با خطوط لاگ سر و کار خواهید داشت.
هر خط لاگ رشتهای است که به این شکل قالببندی میشود: "[<LEVEL>]: <MESSAGE>".
سه سطح لاگ مختلف وجود دارد:
INFOWARNINGERRORسه کار در پیش دارید که هر کدام یک خط لاگ میگیرد و از شما میخواهد کاری روی آن انجام دهید.
تابع message را پیادهسازی کنید تا پیام یک خط لاگ را برگرداند:
(message "[ERROR]: Invalid operation")
;;=> "Invalid operation"
هر فاصلهی خالی در ابتدا یا انتها باید حذف شود:
(message "[WARNING]: Disk almost full\r\n")
;;=> "Disk almost full"
تابع log-level را پیادهسازی کنید تا سطح لاگ یک خط لاگ را برگرداند؛ این مقدار باید با حروف کوچک برگردانده شود:
(log-level "[ERROR]: Invalid operation")
;;=> "error"
تابع reformat را پیادهسازی کنید که خط لاگ را دوباره قالببندی میکند، به این صورت که اول پیام و بعد از آن سطح لاگ را داخل پرانتز قرار میدهد:
(reformat "[INFO]: Operation completed")
;;=> "Operation completed (info)"