日本語の母語話者により校閲必要
恐れ入りますが、当ページは未だ日本語の母語話者に依り校閲されていません。
(※自動翻訳は利用されませんでした)
ES6テンプレートリテラルと似た様な構文を活用し、文字列を組み合わせる機能を提供。 但しStylusプリプロセッサの制限の為、2引数目で キーがテンプレート変数と一致している様な連想配列系の オブジェクトを渡す必要が有る。
p(buildString("Good morning, ${name}", { name: "Takeshi" }))
文字列が短く、変数も1~2程度しかない場合、
buildString
と言う関数呼び出し表現を
一行で展開出来ます。
p(buildString("Good morning, ${ name }", { name: "Takeshi" }))
山括弧の中に半角空白使っても良いです。
p(
buildString(
"In the quaint village of ${ villageName }, nestled amidst the rolling hills of the countryside, lived the " +\
"${ familyName } family. " +\
"Mr. ${ givenName } ${ familyName }, a respected member of the community, was known for his " +\
"kindness and generosity.",
{
villageName: "Willowbrook",
familyName: "Thompson",
givenName: "Jonathan"
}
)
)
普通だと、コードは複数行に成ります。
Stylusプリプロセッサは同じ行内逆斜線の後で
半角空白を含めて文字を許していないので、折り返しの際気を付けて下さい。
p(buildString("You have ${ messagesCount } message(s)", { messagesCount: 2 }))
数型の値も補間出来ます。
// 不正構文!!
p(buildString("Good morning, ${name}", { name }));
残念ながら、ECMAScript 2015以降ECMAScript系言語に追加された
オブジェクト・ショートハンド・プロパティはStylusプリプロセッサには
無い。
文字列組み合わせ方法の比較
ネイティブ連結
givenName = "Takeshi"
familyName = "Tokugawa"
p("Good morning, " + givenName + " " + familyName)
Sprintf (ネイティブ)
givenName = "Takeshi"
familyName = "Tokugawa"
outputString = "Good morning, %s %s" % (unquote(givenName) unquote(familyName))
p(outputString)
buildString
(YDF)
p(
buildString(
"Good morning, ${ givenName } ${ familyName }",
{
givenName: "Takeshi",
familyName: "Tokugawa"
}
)
)