标签: string-interpolation

单引号字符串字符串插值

我正在尝试使用Rails在ActionMailer中设置电子邮件地址.在硬编码之前,我们现在想让它们成为ENV变量,这样我们就不需要在每次电子邮件更改时修改代码.

以下是它目前的定义:

from = '"Name of Person" <email@email.com>'
Run Code Online (Sandbox Code Playgroud)

我已经尝试将电子邮件设置为环境变量使用,ENV['EMAIL']但我甚至没有运气#{ENV['EMAIL'}.

谁能指出我正确的方向?

ruby ruby-on-rails actionmailer string-interpolation

6
推荐指数
2
解决办法
2725
查看次数

Python:使用自定义分隔符格式化字符串

EDITED

我必须使用字典中的值格式化字符串,但字符串已包含大括号.例如:

raw_string = """
    DATABASE = {
        'name': '{DB_NAME}'
   }
"""
Run Code Online (Sandbox Code Playgroud)

但是,当然,raw_string.format(my_dictionary)KeyErro的结果.

有没有办法使用不同的符号.format()

这不是重复的如何在python字符串中打印文字大括号字符并在其上使用.format?因为我需要保持大括号,并使用不同的分隔符.format.

python format syntax string-interpolation cheetah

6
推荐指数
2
解决办法
5569
查看次数

禁用错误警告"可能缺少插补器"

我有一些嵌套的case类,对于特定的序列化机制,我需要提供一个productPrefix包含$字符的内容.像这样

object Foo {
  case class Bar() {
    override def productPrefix = "Foo$Bar"
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我收到一个编译器警告:

Warning:(53, 42) possible missing interpolator: detected interpolated identifier `$Bar`
    override def productPrefix: String = "Foo$Bar"
Run Code Online (Sandbox Code Playgroud)

有没有办法禁用警告,如果可能的话只有这个实例?Scala版本是2.11.8.


编辑:我以为我很聪明:"Foo\u0024Bar".但编译器甚至警告过这一点.另一种解决方案是classOf[Bar].getName,在没有其他外部对象的约束下.

scala compiler-warnings string-interpolation

6
推荐指数
2
解决办法
2341
查看次数

如何在.yml文件中使用Property占位符

我正在使用Java和spring boot.我想知道如何将Property占位符添加到.yml文件中.我发现了一些清晰的例子,但我不确定Property占位符在哪里被实例化.它是在系统env变量,文件等中吗?

Bootstrap.yml

spring:
  cloud:
    config:
      username: ${my.stored.files.username}
      password: ${my.stored.files.password}
      label: ${spring.cloud.find.label}
      uri: ${spring.cloud.config.uri}
      enabled: false
      failFast: true
Run Code Online (Sandbox Code Playgroud)

用户正在使用Property占位符,但是用户在哪里声明了它?这个.yml从哪里读取值?(与上述相同的问题)是否有解释连接的文件?

此Web应用程序将使用"cf push"推送到云代工厂,它将自动选择要配置的manifest.yml文件.如果可能的话,云代工厂的例子会很棒.

理解

app.name=MyApp
app.description=${app.name} is a Spring Boot application
Run Code Online (Sandbox Code Playgroud)

用户可以使用$ {app.name},因为它已定义.我对上面的例子很困惑.用户如何以及在哪里获得"$ {my.stored.files.username}.在哪里定义?我假设它将在system.properties或环境变量中.任何人都可以确认吗?

java yaml manifest string-interpolation spring-boot

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

如何使用字符串插值和逐字字符串一起创建JSON字符串文字

我正在尝试创建一个表示JSON对象数组的字符串文字,所以我想到使用字符串插值功能,如下面的代码所示:

    public static void MyMethod(string abc, int pqr)
    {
        string p = $"[{{\"Key\":\"{abc}\",\"Value\": {pqr}  }}]";
    }
Run Code Online (Sandbox Code Playgroud)

现在我想到使用逐字字符串,这样我就不必使用反斜杠来转义双引号.所以我通过这个答案来了解逐字字符串和字符串插值可以一起使用.所以我改变了我的代码如下:

public static void MyMethod(string abc, int pqr)
{
    string p = $@"[{{"Key":"{abc}","Value": {pqr} }}]";
}
Run Code Online (Sandbox Code Playgroud)

但它无法编译.谁能帮助我,如果有什么错误的,我使用,否则将能够使用C#字符串逐字功能逃脱在这种情况下双引号?

.net c# string string-interpolation verbatim-string

6
推荐指数
1
解决办法
4324
查看次数

为什么插值在ng-show内部工作,而不是在ng-click内部

//模板

      <div ng-controller="myController">
        <input type="text" ng-model="name">
        <p>{{name}}</p>
        <p>{{10+10}}</p>
        <button type="button" ng-click="{{myFunction()}}">click Me !!</button>

        <p ng-show="{{myFunction()}}">The name is {{ name | uppercase }}</p>

      </div>

// Controller

myApp.controller('myController', function ($scope) {

  $scope.name = 'Ranka';
  $scope.myFunction = function(){
    return true;
  };

});
Run Code Online (Sandbox Code Playgroud)

在ng-click的情况下失败了

angular.js:14525错误:[$ parse:syntax]语法错误:表达式[{{myFunction()}}的第2列的令牌'{'无效键,从[{myFunction()}}开始.

expression string-interpolation angularjs ng-show

6
推荐指数
1
解决办法
627
查看次数

Ruby 对反引号表达式中字符串替换的限制?

好的,所以我尝试执行以下代码:

`#{@daemon_path} --name=#{@app_name} --command=#{@java_path} -- -jar #{jetty_jar} #{@war_path} #{random_port}`
sleep(10) #give war time to error out and die if its going to
`#{@daemon_path} --running --name=#{@app_name}`
Run Code Online (Sandbox Code Playgroud)

变量值为:

  • @daemon_path = path/to/daemon(对于我的系统正确)
  • @app_name = foobarbazquux
  • @command = path/to/java (对于我的系统也是正确的)
  • jetty_jar = 一种返回自定义 jar 路径的方法,该自定义 jar 支持独立的 jetty 容器(已测试;有效)
  • @war_path = /path/to/helloworld/war (在独立码头容器中测试;有效)
  • random_port = 一个返回 10000 到 65535 之间随机端口号的方法(暂时将其更改为返回 8000 或 22,具体取决于我是否想要失败启动战争)

我收到此错误(检查了 bash 中的命令,它们工作正常):

无效参数:未提供命令

用法:daemon [选项] [--] [cmd arg...]

我通过在上述命令周围添加引号来修复上述错误,如下所示:

"`#{@daemon_path} --name=#{@app_name} --command=#{@java_path} -- -jar #{jetty_jar} #{@war_path} #{random_port}`"

"`#{@daemon_path} --running --name=#{@app_name}`" …
Run Code Online (Sandbox Code Playgroud)

ruby runtime-error limit string-interpolation backticks

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

新的C#6.0字符串插值语句不编译

我正在尝试实现此视频中的一些功能,但我对新的字符串插值语法没有太多运气(我还有其他所有工作,至少在这段代码中是这样).

我正在使用Visual Studio 2015 CTP6,我已将其配置为使用.NET 4.6并已进入Build选项以确保我指定C#6.0.我也按照这里的说明进行操作.

这是我的代码:

using System;
using static System.Math;

namespace NewCsharp6Features
{
    public class C6Point
    {
        public int X { get; }
        public int Y { get; }
        public double Distance => Sqrt(X * X + Y * Y);

        public C6Point(int x, int y) { X = x; Y = y; }

        public override string ToString()
        {
            return "(\{X}, \{Y})";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到了两个这样的编译错误:

CS1009 | 无法识别的转义序列

知道我做错了什么,在这里?

c# string-interpolation c#-6.0 visual-studio-2015

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

#{} 总是等于 to_s 吗?

在“使用类名进行字符串插值意味着什么? ”中,Candide 建议在#{}字符串内部隐式调用to_s. 因此,例如:

my_array = [1, 2, 3, 4]
p my_array.to_s # => "[1, 2, 3, 4]"
p "#{my_array}" # => "[1, 2, 3, 4]"
Run Code Online (Sandbox Code Playgroud)

但是,如果to_sfor Array 重新定义如下所示,我会得到不同的结果:

class Array
  def to_s
    self.map { |elem| elem.to_s }
  end
end

p my_array.to_s # => ["1", "2", "3", "4"]
p "#{my_array}" # => "#<Array:0x007f74924c2bc0>"
Run Code Online (Sandbox Code Playgroud)

我想这种情况随时都会发生,而且无论如何 to_s都会被覆盖。

如果可能的话,我应该做什么来保持字符串中的to_s表达式之间的相等性?#{}

我在RubyMonk 课程中遇到了这个问题:根据课程 #{ogres}应该返回什么,根据我的经验是不同的。

ruby string-interpolation

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

Perl6中的字符串插值

我很难搞清楚为什么声明

say "\c500";
Run Code Online (Sandbox Code Playgroud)

按预期在屏幕上生成字符'Ǵ',而以下语句在编译时给出错误消息("无法识别的\ c字符"):

my $i = 500;
say "\c$i";
Run Code Online (Sandbox Code Playgroud)

即使

say "$i"; # or 'say $i.Str;' for that matter
Run Code Online (Sandbox Code Playgroud)

产生"500"(带"$ i".WHAT表示类型为Str).

string-interpolation perl6

5
推荐指数
2
解决办法
192
查看次数