标签: string-interpolation

为什么字符串插值在erb模板中失败?

我在.erb文件中有以下代码:

<% embed='<a href="http://someurl.com/whatever">#{@webcast.name}</a>'%>

<p id="embedCode">
    <pre>
        <code>
            <%= embed %>
        </code>
    </pre>
</p>
Run Code Online (Sandbox Code Playgroud)

锚标记在屏幕上正确显示为文本而不是呈现为dom元素,但字符串插值失败.html已成功显示为文本,但未评估#{@webcast.name}.如果模板中包含<%= @ webcast.name =>,则成功呈现网络广播名称.

html ruby ruby-on-rails erb string-interpolation

7
推荐指数
1
解决办法
9972
查看次数

如何在pathstring中使用字符串插值导入.less文件?

如何在pathstring中使用字符串插值导入.less文件.

@folder: "LessFiles";
Run Code Online (Sandbox Code Playgroud)

我试过这个

@import "@{folder}/file.less";

Error:
File Not Found. 
HTTP GET Url is "%7Bfolder%7D/file.less" 
Run Code Online (Sandbox Code Playgroud)

还有这个:

@import formatString("{0}/file.less",@folder);

Error:
Server throws System.NullReferenceException
Run Code Online (Sandbox Code Playgroud)

还有这个:

@path: "@{folder}/file.less";

@import @path;

Error:
directive block with unrecognised format on line 16 in file 'test.less':
 [15]: 
 [16]: @import @path;
       --------^
 [17]: 
Run Code Online (Sandbox Code Playgroud)

任何提示如何解决这个问题?

谢谢!

string import string-interpolation less dotless

7
推荐指数
1
解决办法
821
查看次数

Python字符串插值实现

[编辑00]:我已经多次编辑该帖子,现在甚至是标题,请阅读以下内容.

我只是了解了格式字符串的方法,其使用词典使用,如所提供的那些vars(),locals()globals(),例如:

name = 'Ismael'
print 'My name is {name}.'.format(**vars())
Run Code Online (Sandbox Code Playgroud)

但是我想这样做:

name = 'Ismael'
print 'My name is {name}.' # Similar to ruby
Run Code Online (Sandbox Code Playgroud)

所以我想出了这个:

def mprint(string='', dictionary=globals()):
    print string.format(**dictionary)
Run Code Online (Sandbox Code Playgroud)

您可以在此处与代码进行交互:http://labs.codecademy.com/BA0B/3#: workspace

最后,我想做的是将该函数放在另一个名为的文件中my_print.py,这样我就能做到:

from my_print import mprint

name= 'Ismael'
mprint('Hello! My name is {name}.')
Run Code Online (Sandbox Code Playgroud)

但就像现在一样,范围存在问题,我如何从导入的mprint函数中将主模块命名空间作为字典.(不是那个my_print.py)

我希望我自己理解,如果没有,尝试从另一个模块导入该功能.(回溯在链接中)

它正在访问globals()dict my_print.py,但当然变量名在该范围内没有定义,有关如何实现这一点的任何想法?

如果它在同一模块中定义,该函数可以工作,但请注意我必须如何使用,globals()因为如果不是,我只会得到一个mprint()范围内的值的字典.

我已经尝试使用非局部和点符号来访问主模块变量,但我仍然无法弄明白.


[编辑01]:我想我找到了一个解决方案:

在my_print.py中:

def mprint(string='',dictionary=None):
    if dictionary is None:
        import sys …
Run Code Online (Sandbox Code Playgroud)

python string-interpolation

7
推荐指数
1
解决办法
1631
查看次数

Scala:使用字符串插值将函数直接用于println(...)的方法

使用Scala 2.10+字符串可以进行插值.所以我有这个问题.你怎么能这样做:

println(f"$foo(100,51)%1.0f" )
Run Code Online (Sandbox Code Playgroud)

考虑foo是一个函数,如:

def foo(x1:Int , x2:Int) : Double  = { ... }
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这被评估的方式使得foo被认为没有参数因为我得到的消息是:

missing arguments for method foo in object bar;
follow this method with `_' if you want to treat it as a partially applied function
Run Code Online (Sandbox Code Playgroud)

我尝试使用括号,但仍然会出现错误.

scala string-interpolation scala-2.10

7
推荐指数
1
解决办法
1501
查看次数

在JavaScript对象中插入模板变量的方法

我想做以下事情

var obj = {
  animal: "${animal}"
};

var res = magic(obj, {animal: "cat"});

// res => {animal: "cat"}
Run Code Online (Sandbox Code Playgroud)

magic是一些做脏工作的功能.显然obj,使用多个键,嵌套数组等可能会更复杂.模板变量可以在这样的数组中

var obj = {
  animals: ["cat", "dog", "${animal}", "cow"]
};
Run Code Online (Sandbox Code Playgroud)

它可以在阵列中的任何地方,所以简单地做obj.animals[2] = "bat";是不可行的.

我找到了可以实现我想要的下划线tpl库,但我想知道是否有其他解决方案供将来参考,因为我很难找到下划线tpl.

我实际使用的情况是我有一个config.json文件,我有几个声明,如下所示

{
  "task1": {
    "command": "command-line-program",
    "args": [
      "--input", "{{input}}",
      "--flag1",
      "--output", "{{output}}",
      "--flag2",
    ],
    "options": {
      "cwd": "path-to-working-dir"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我用这个解析consig.json JSON.parse(...)我打电话require("child_process").spawncommand,argsoptions在文件中声明的参数,但是args改变了不少,标志添加,重新排序和东西,所以只做config.task1.args[1] = "<input value>"; …

javascript json string-interpolation underscore.js-templating

7
推荐指数
1
解决办法
4295
查看次数

C# 中字符串插值内的字符串插值导致编译器错误

以下 C# 表达式会导致我的程序出现编译器错误:

$"Getting image from {location.IsLatitudeLongitude ? $"{location.Latitude} - {location.Longitude}" : location.Location}."
Run Code Online (Sandbox Code Playgroud)

难道不能像这样使用字符串插值吗?或者根本不可能做到这一点?

c# csc string-interpolation

7
推荐指数
1
解决办法
2616
查看次数

字符串插值输出枚举名称而不是值

我希望有人可以解释有关字符串插值和枚举类型的默认功能.

我有这个枚举:

public enum CommentType
{
    MyComment = 24,
    TheirComment = 25,
    AnotherComment = 26
}
Run Code Online (Sandbox Code Playgroud)

我在字符串中使用它:

Dim sDateModified As String 
sDateModified = $"<div name='commenttype{CommentType.MyComment}'></div>"
Run Code Online (Sandbox Code Playgroud)

我期待CommentType.MyComment被评估并使用int值24.结果应该是:<div name='commenttype24'></div>

但实际发生的是使用标识符,让我: <div name='commenttypeMyComment'></div>

为了获得枚举值,我必须将其转换为整数:

sDateModified = $"<div name='commenttype{Convert.ToInt32(CommentType.MyComment)}'></div>"
Run Code Online (Sandbox Code Playgroud)

它只是让我觉得反直觉.有人可以解释或指出有关它为何如此工作的文档吗?

vb.net enums string-interpolation

7
推荐指数
2
解决办法
1096
查看次数

字符串插值中的可变对齐组件

本例中的对齐组件是:-20

$"{value, -20}"

有没有办法制作这样的内插字符串:

$"{value, alignment}"

alignment变量在哪里?

c# string string-interpolation

7
推荐指数
1
解决办法
1189
查看次数

C# 在 Razor 中使用字符串插值转义双引号?

我有以下带有三元运算符的剃刀代码来包含或省略 data-* 属性:

 <select class="form-control"
        @(field.DependentDropdown ? $"data-selected={Model.KeyValues.GetValue(field.Name)}" : "")>
Run Code Online (Sandbox Code Playgroud)

当它在 HTML 中呈现时,它是这样的:

<select class="form-control" 
        data-selected="Toyota" yaris="">
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,数据选择属性的值的格式不正确——它应该是用双引号括起来的一个词"Toyota Yaris"

如何正确转义或添加双引号:

 $"data-selected={Model.KeyValues.GetValue(field.Name)}"
Run Code Online (Sandbox Code Playgroud)

c# interpolation string-interpolation razor

7
推荐指数
2
解决办法
6879
查看次数

Perl6:第一个数组元素放入字符串,第二个数组元素放入字符串

我正在尝试从数组元素创建一个新字符串:

my $truth = "s3://dir/@d[$d1]/$plate/@d[$d1].$plate.delta";
Run Code Online (Sandbox Code Playgroud)

但问题是这给了

s3://dir/pgr_9/1/@d[0].1.delta

什么时候应该给

s3://dir/pgr_9/1/pgr_9.1.delta

为什么这个数组元素不@d[0]插入字符串$truth?我怎么能得到它?

string-interpolation perl6

7
推荐指数
1
解决办法
91
查看次数