标签: string-interpolation

是否可以插入 freemarker 宏?

假设我有一个 freemarker 宏:

<#macro helloObject>
  World
</#macro>
Run Code Online (Sandbox Code Playgroud)

在某些情况下,我可以轻松调用它:

Hello, <@helloObject/>!
Run Code Online (Sandbox Code Playgroud)

但是插入它的语法是什么,例如,如果它是字符串的一部分?

<#assign greeting="Hello, <@helloObject>!"     /> <#-- doesn't work -->
<#assign greeting="Hello, ${helloObject}!"     /> <#-- doesn't work -->
<#assign greeting="Hello, ${@helloObject}!"    /> <#-- doesn't work -->
<#assign greeting="Hello, ${<@helloObject/>}!" /> <#-- doesn't work -->
<#assign greeting="Hello, @helloObject!"       /> <#-- doesn't work -->
${greeting}
Run Code Online (Sandbox Code Playgroud)

template-engine freemarker templating templating-engine string-interpolation

0
推荐指数
2
解决办法
2192
查看次数

为什么字符串插值只能在双引号中起作用 PHP

我通过 PHP 编程注意到字符串插值 ( "blah blah ${foo}") 只能在双引号字符串 ( "...") 中工作。

例如,这一行将起作用:

$bar = "foo";
echo "I like ${bar}";

>> I like foo
Run Code Online (Sandbox Code Playgroud)

但这个不会:

$bar = "foo";
echo 'I like ${bar}';

>> I like ${bar}
Run Code Online (Sandbox Code Playgroud)

我知道PHP 手册谈到了插值仅在此类字符串中起作用的事实,但它没有解释为什么选择它以这种方式工作。

这就是我的问题——为什么字符串插值仅适用于 PHP 中的双引号字符串?

php string string-interpolation

0
推荐指数
1
解决办法
1688
查看次数

Scala 中的嵌套字符串插值

我正在 RDBMS 上执行查询并获取字符串形式的结果。字符串看起来像这样:

val DBASE = "my_database"
val FREQ = "monthly"
val queryResult: String = sqlContext.read.jdbc(...).collect.map(...).first
// queryResult = Database is $$${DBASE} and frequency is $$${FREQ}
Run Code Online (Sandbox Code Playgroud)

接下来我将替换$$$$,所以我留下类似的内容:

queryResult = "Database is ${DBASE} and frequency is ${FREQ}"
Run Code Online (Sandbox Code Playgroud)

如何在DBASE和上使用字符串插值FREQ?我努力了:

val substituted = f"${queryResult}"
Run Code Online (Sandbox Code Playgroud)

val substituted = s"${queryResult}"
Run Code Online (Sandbox Code Playgroud)

但变量并没有被替换。除了使用以下内容之外,我还能做些什么:

queryResult.replaceAll("\\$\\{DBASE\\}", DBASE).replaceAll(...)
Run Code Online (Sandbox Code Playgroud)

scala string-interpolation

0
推荐指数
1
解决办法
1215
查看次数

反斜杠在 Swift 中起什么作用?

在下面的代码行中,反斜杠告诉 Swift 做什么?

print("The total cost of my meal is \(dictionary["pizza"]! + dictionary["ice cream"]!)")
Run Code Online (Sandbox Code Playgroud)

string string-interpolation swift

0
推荐指数
1
解决办法
1511
查看次数

带角度插值的内联 CSS

我正在研究 Angular,并试图根据"cardData.color".

例如

cardData = {id: '1', color: '#202020'};
Run Code Online (Sandbox Code Playgroud)

我已经尝试了下面显示的代码,但它不起作用。

<div style="background-color: {{cardData.color}}; padding: 10px 20px;"></div>
Run Code Online (Sandbox Code Playgroud)

有什么办法,我可以根据对象的颜色动态设置背景颜色??谢谢你。

css inline background-color string-interpolation angular

0
推荐指数
1
解决办法
1968
查看次数

Angular:调用插值括号内的函数

在我的 Angular 项目中,我有一个 A 类:

export class A {
    id: number;

    public displayName(): string{
       return "a";
    }
Run Code Online (Sandbox Code Playgroud)

在我的组件中,我有一个类型为 A 的数组,因此 component.ts 具有以下行:

arrayOfAs: Array<A>;
Run Code Online (Sandbox Code Playgroud)

在 component.html 中,我只想在 ngFor 循环中显示字符串函数的数字和结果:

<div *ngFor="let element of arrayOfAs">
    {{element.id}}, {{element.displayName()}}
</div>
Run Code Online (Sandbox Code Playgroud)

可以显示 id,但对于该函数,我收到错误消息:

类型错误:_v.context.$implicit.displayName 不是函数

如何在插值中使用函数?

显然,这只是我真实案例的简化版本。谢谢

string-interpolation angular

0
推荐指数
1
解决办法
1581
查看次数

使用$插值和@编码对字符串进行转义

我正在尝试在插值字符串块中转义一个“”字符,如下所示。

var name = "Mr. Roguers";
var htmlEmail = $@"
    <p>Dear {name},</p>
    <p>Please click this awesome <a href=\"google.com\">link.</a></p>
";
Console.WriteLine(htmlEmail);
Run Code Online (Sandbox Code Playgroud)

我看过很多地方,有人可以使用$和@来提供一些指导或解决方案来避免这种情况。我希望我的代码像这样多行,以便清晰阅读,这就是为什么我有@符号。我也想使用$字符串插值。

此代码无法使用.NET Core 2.2进行编译

我正在自己的解决方案中在Visual Studio中对其进行测试,并且这个简单的示例也在https://dotnetfiddle.net/上进行了测试。

c# string-interpolation html-escape-characters

0
推荐指数
1
解决办法
53
查看次数

对象中的字符串插值

我有以下代码:

const [answerObject, setAnswerObject] = useState({})

const answerItem = {"question_" + survey.id, selectedAnswer}
setAnswerObject(answerObject + answerItem)
Run Code Online (Sandbox Code Playgroud)

我正在尝试得到这个结果:

answers = {
    question_1: 'text from answer 1',
    question_2: 'text from answer 2',
    question_3: 'text from answer 3',
}  
Run Code Online (Sandbox Code Playgroud)

但是我在插值时遇到了麻烦。我尝试了很多不同的方法但没有运气。任何正确格式化它的帮助或建议都会很棒。

javascript string-interpolation reactjs

0
推荐指数
1
解决办法
1686
查看次数

在 Vue.js 3 中设置自定义分隔符

我正在尝试在 Vue.js 3 中设置自定义分隔符,但它似乎不起作用。

我尝试的第一件事是delimiters像这样设置组件参数:

export default defineComponent({
    delimiters: ["${", "}$"],
    // ...
})
Run Code Online (Sandbox Code Playgroud)

但什么也没有发生。

然后我尝试像这样设置main.ts文件:

import { createApp } from "vue";
import router from "./router";
import App from "./App.vue";

App.delimiters = ["${", "}$"];

createApp(App)
   .use(router)
   .mount("#app");
Run Code Online (Sandbox Code Playgroud)

模板中的字符串插值再次不起作用。

我错过了什么?

string-interpolation typescript vue.js vuejs3

0
推荐指数
1
解决办法
1017
查看次数

条件数组附加的 Bash 习惯用法?

我试图弄清楚 bash 中是否有一种更短的方法,仅当变量的值非空时才将其有条件地附加到数组中。

我相信以下是正确的,但有点“罗嗦”

my_array=()

if [[ "${my_first_var:-}" ]]; then
    my_array+=( "${my_first_var}" )
fi
if [[ "${my_second_var:-}" ]]; then
    my_array+= ( "${my_second_var}" )
fi

Run Code Online (Sandbox Code Playgroud)

我这么问是因为我正在尝试清理一些执行此操作的代码:

my_array+=( ${my_first_var:-} ${my_second_var:-} )
Run Code Online (Sandbox Code Playgroud)

这是一个“有效”的 hack,可以有条件地仅将非空值附加到my_array,并且很好,因为它使用数组插值,但有一个问题,如果字符串中my_var包含空格(或IFS设置为任何内容),它会执行某些操作非常意外(将多个元素附加到数组中)。

我可能想到了这一点,但我不确定我的意图是否足够明确。

[[ "${my_first_var:-}" ]] && my_array+=( "${my_first_var}" )
[[ "${my_second_var:-}" ]] && my_array+=( "${my_second_var}" )
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以有条件地仅附加非空值,该值简洁但惯用且清晰?

arrays bash string-interpolation

0
推荐指数
1
解决办法
98
查看次数