Clojureには、format
と呼ばれるこの非常に便利な関数があります。文字列を簡単にテンプレート化できることで知られています。この関数は、ほとんどのプログラミング言語で一般的に使用できます。
ClojureScriptがこの関数を実装していないことに少しイライラしました。私が調査できる限り、それは古いバージョンで実装されていましたが、最新のものには機能が含まれていません。
これには理由があるかどうか誰かが知っていますか?
format
はClojureScriptに存在します。これは、ClojureScriptの基本的な部分であるGoogle Closure Library(GCL)からのものです。残念ながら、それを使用するのは難しい場合があります。従来の方法は、[goog.string :as gstring]
と[goog.string.format]
の両方を要求してから、名前空間gstring.format
を使用することです。例えば:
(ns rostering.components.services
(:require
[goog.string :as gstring]
[goog.string.format]))
(str "$" (gstring/format "%.2f" 2.5))
documentation のこの短いページの下部に、ほぼ同じ例があります。
ClojureScriptのどの部分がGCLであるかを十分に言うことはできません。ここに 別の参照 があります。これは、format
がClojureScriptの一部である関数であることを意味します。
その参照からの引用は次のとおりです。
Google Closure Libraryは、モジュラーアーキテクチャに基づいてGoogleが開発したjavascriptライブラリであり、DOMの操作とイベント、ajaxとJSONなどの機能のためのクロスブラウザー機能を提供します。
これは、Closureコンパイラ(ClojureScriptコンパイラによって内部的に使用される)を利用するために特別に作成されています。
また、ClojureScriptはClosureCompilerとClosureLibraryに基づいて構築されています。実際、ClojureScript名前空間はClosureモジュールです。
このコメント 関連するjiraチケットが役立つ場合があります:
これを裏付けると、goog.string.formatは高度な最適化に逆らい、Clojureのフォーマットの機能のいくつかを提供します-これはJava.util.Formatterのために多くのことを行います。解約についてはお詫びしますが、これは、実際に提供される機能のほんの少しのために、人々が自分自身でスタブするのは簡単なことです。