标签: string-interpolation

Python:带有字符串插值的动态 json

我创建了一类提供一些云基础设施的函数。

response = self.ecs_client.register_task_definition(
containerDefinitions=[
                {
                    "name": "redis-283C462837EF23AA",
                    "image": "redis:3.2.7",
                    "cpu": 1,
                    "memory": 512,
                    "essential": True,
                },
...
Run Code Online (Sandbox Code Playgroud)

这是一个很长的 json,我只显示开头。

然后我重构了代码以使用参数而不是硬编码的哈希、内存和 CPU。

response = self.ecs_client.register_task_definition(
containerDefinitions=[
                {
                    "name": f"redis-{git_hash}",
                    "image": "redis:3.2.7",
                    "cpu": {num_cpu},
                    "memory": {memory_size},
                    "essential": True,
                },
...
Run Code Online (Sandbox Code Playgroud)

我在这段代码之前从配置文件中读取了git_hashnum_cpu和的值。memory_size

现在,我还想从文件中读取整个 json。

问题是,如果我将{num_cpu}等保存在文件中,字符串插值将不起作用。

如何从我的逻辑中提取 json 并仍然使用字符串插值或变量?

python json design-patterns string-interpolation

5
推荐指数
1
解决办法
2679
查看次数

Angular 在 html 中显示条件文本,包括条件数据

我知道在 Angular2+ 中我们可以在 html 中创建条件,如下所示:

  <p>{{ dynamicData.value? dynamicData.value : dynamicData.default}}</p>
Run Code Online (Sandbox Code Playgroud)

我们也可以这样做:

  <p>{{ dynamicData.value? 'text 1' : 'text 2'}}</p>
Run Code Online (Sandbox Code Playgroud)

但我想结合这两种解决方案,但我不知道如何做到这一点。一般来说,我想做这样的事情:

  <p>{{ dynamicData.value? 'Dynamic data value is equal: {{dynamicData.value}}' : 'no dynamic data'</p>
Run Code Online (Sandbox Code Playgroud)

您知道如何处理此文本插值吗?

html dynamic string-interpolation angular-material angular

5
推荐指数
1
解决办法
1万
查看次数

在 const 函数中插入字符串

我正在尝试制作一个与此类似的功能

pub const fn insert(num1:i32, num2:i32) -> &'static str { 
    formatcp!("n1:{}, n2:{}" , num1, num2) 
} 

Run Code Online (Sandbox Code Playgroud)

但 num1/num2 不是 const。我认为这作为宏是可能的,但我在宏方面没有经验。

compile-time-constant string-interpolation rust

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

为什么 LocalizedStringKey 的行为取决于我是否将字符串插值传递给其初始化程序?

在尝试回答这个问题时,我发现了一个奇怪的行为。

Text(LocalizedStringKey("Hello \(Image(systemName: "globe"))"))
Run Code Online (Sandbox Code Playgroud)

显示一个地球仪,但是

Text(LocalizedStringKey("Hello {world}".replacingOccurrences(of: "{world}", with: "\(Image(systemName: "globe"))")))
Text(LocalizedStringKey("Hello" + "\(Image(systemName: "globe"))"))
Run Code Online (Sandbox Code Playgroud)

显示“Hello”,然后是一堆 SwiftUI 内部术语。

一个更简单的例子是:

let x = "\(Image(systemName: "globe"))"
print(LocalizedStringKey.init(x))
print(LocalizedStringKey.init("\(Image(systemName: "globe"))"))
Run Code Online (Sandbox Code Playgroud)

我传递给的值LocalizedStringKey.init应该是相同的"\(Image(systemName: "globe"))",但是第一个打印

LocalizedStringKey(key: "%@", hasFormatting: true, arguments: [...])

和第二张照片

LocalizedStringKey(key: "Image(provider: SwiftUI.ImageProviderBox<SwiftUI.Image.(unknown context at $7ff91ccb3380).NamedImageProvider>)", hasFormatting: false, arguments: [])

似乎LocalizedStringKey.init改变其行为取决于我传递的参数是否是(内插的)字符串文字。

据我所知,这两个调用正在LocalizedStringKey.init调用相同的初始化程序。中只有一个无参数标签初始化程序LocalizedStringKey,它采用String.

如果还有一个接受 a 的初始化程序LocalizedStringKey,结果会更容易理解。毕竟LocalizedStringKey 有自定义的字符串插值规则,而且是专门针对的。Image但据我所知,这是唯一没有参数标签的初始化程序。

如果初始化器的参数是 ,这也可以理解@autoclosure () -> String …

string-interpolation swift swiftui localizedstringkey

5
推荐指数
1
解决办法
488
查看次数

为什么变量不在“constant”声明中插入?

use v6.d;

my Str $foo = 'Hello';
my constant $BAR = "--$foo--";
say $BAR;
Run Code Online (Sandbox Code Playgroud)

输出:

Use of uninitialized value element of type Str in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.
  in block  at deleteme.raku line 4
----
Run Code Online (Sandbox Code Playgroud)

预期输出:

--Hello--
Run Code Online (Sandbox Code Playgroud)

my没有或 代替our也会发生同样的事情my

[187] > $*DISTRO
macos (12.6)
[188] > $*KERNEL
darwin
[189] > $*RAKU
Raku (6.d)
Run Code Online (Sandbox Code Playgroud)

constants string-interpolation raku

5
推荐指数
1
解决办法
117
查看次数

在插值字符串中编写其他 C# 代码?

在 C# 11 中,我们现在可以在内插字符串中包含换行符。所以我们可以写这样的代码:

    string pageTitle = "";
    string header = $"Header: {
      pageTitle switch
      {
        "" => "No title",
        _ => pageTitle
      }}";
Run Code Online (Sandbox Code Playgroud)

除了 switch 语句之外,有没有办法在这里编写其他代码?

我尝试了一个if,它告诉我这if是一个无效的表达术语。

    string header51 = $"Header: {
      if (pageTitle5 == "")
      {
        "No title";
      }
      else
      {
        pageTitle5;
      }  
    }";
Run Code Online (Sandbox Code Playgroud)

除了 switch 之外还有其他语句可以在这里使用吗?

c# string-interpolation c#-11.0

5
推荐指数
1
解决办法
181
查看次数

用元组切片进行Python字符串插值?

我正在使用python2.7,我想知道使用元组进行pythons字符串插值的原因是什么.TypeErrors在做这么少的代码时,我开始陷入困境:

def show(self):
    self.score()
    print "Player has %s and total %d." % (self.player,self.player_total)
    print "Dealer has %s showing." % self.dealer[:2]
Run Code Online (Sandbox Code Playgroud)

打印:

Player has ('diamond', 'ten', 'diamond', 'eight') and total 18
Traceback (most recent call last):
File "trial.py", line 43, in <module>
    Blackjack().player_options()
  File "trial.py", line 30, in player_options
    self.show()
  File "trial.py", line 27, in show
    print "Dealer has %s showing." % (self.dealer[:2])
TypeError: not all arguments converted during string formatting
Run Code Online (Sandbox Code Playgroud)

所以我发现我需要更改错误来自的第四行,以此:

print "Dealer has %s %s showing." % …
Run Code Online (Sandbox Code Playgroud)

python tuples string-interpolation

4
推荐指数
2
解决办法
1376
查看次数

Haml:如何生成动态id

我在erb中有以下代码可以正常工作:

<div id='flash_<%= flash.keys.first.to_s %>'>
    <%=h    flash[flash.keys.first] %>
</div>
Run Code Online (Sandbox Code Playgroud)

我想把它转换为haml:

#flash_#{flash.keys.first.to_s}
  =h flash[flash.keys.first]
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

Illegal element: classes and ids must have values.
Run Code Online (Sandbox Code Playgroud)

这是奇怪的,因为有IS值,'flash_'部分始终存在,即使我这样做,我也会得到错误:

#flash_#{nil.object_id}
Run Code Online (Sandbox Code Playgroud)

显然我的Ruby插值在haml中有些不对劲,但我无法做到.根据文档http://haml.info/docs/yardoc/file.REFERENCE.html#ruby_interpolation_# {}用于内插Ruby,它适用于这种情况:

#flash_
  #{flash.keys.first.to_s}
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的.

总之,我想得到以下输出:

<div id="flash_foo"> blahblah </div>
Run Code Online (Sandbox Code Playgroud)

但它也可以:

<div id="flash_"></div>
Run Code Online (Sandbox Code Playgroud)

如何用haml获得?

haml ruby-on-rails string-interpolation

4
推荐指数
1
解决办法
4056
查看次数

Sublime Text 2:如何在Ruby字符串插值期间关闭{}的自动插入?

在Ruby文件中输入双引号时,Sublime会{}在您输入时自动添加#.这是一个巨大的麻烦,并混淆了我的bejeezus.我怎么让它停下来?

shortcuts autocomplete string-interpolation sublimetext2

4
推荐指数
1
解决办法
2135
查看次数

将变量插入到字符串中

虽然是一位经验丰富的程序员,但我对js完全不熟悉并做出反应.

我试图在我自己的组件中使用该react-native-svg组件Path.对于示例,一切都很清楚,但它使用字符串文字作为坐标.例如:

<Path d="M 10 20 L 30 40" stroke="red" />
Run Code Online (Sandbox Code Playgroud)

不过,我想用坐标从我的组件的道具x1,y2,x2,y2而不是文字,但我无法弄清楚如何将它们种植到引用字符串与各个字符一起ML就是例子.

javascript string-interpolation react-native

4
推荐指数
1
解决办法
2397
查看次数