buildString
():string
1パラメーター目
必須- 一般技術名
- targetString
- 日本語名
- 対象文字列
- 型
- string
2パラメーター目
必須- 一般技術名
- templateVariables
- 日本語名
- テンプレート変数
- 型
- object
恐れ入りますが、現在此のページは母語話者に依る校閲されていない状態です。
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プリプロセッサには
無い。
interpolationMethodsComparison.$heading
interpolationMethodsComparison.concatenation.$heading
givenName = "Takeshi"
familyName = "Tokugawa"
p("Good morning, " + givenName + " " + familyName)
interpolationMethodsComparison.sprintf.$heading
givenName = "Takeshi"
familyName = "Tokugawa"
outputString = "Good morning, %s %s" % (unquote(givenName) unquote(familyName))
p(outputString)
interpolationMethodsComparison.buildString.$heading
p(
buildString(
"Good morning, ${ givenName } ${ familyName }",
{
givenName: "Takeshi",
familyName: "Tokugawa"
}
)
)