我有以下几行:
<div class='social'>http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]</div>
Run Code Online (Sandbox Code Playgroud)
这一切都很棒,它显示了当前的链接,比方说:http://www.example.com/mypage.php
现在我想将它与变量相关联
$myURL = 'http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]'
Run Code Online (Sandbox Code Playgroud)
当我回应这个时,我得到"http:// $ _ SERVER [HTTP_HOST] $ _SERVER [REQUEST_URI]" - 换句话说就是代码本身.我究竟做错了什么?
我也尝试过:$ myURL ='{http:// $ _ SERVER [HTTP_HOST] $ _SERVER [REQUEST_URI]}'
我也试过直接回复它:
echo 'http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]';
Run Code Online (Sandbox Code Playgroud)
我在俯瞰什么?谢谢!
为什么在REPL中这个表达式失败:
List("a", "b").foreach { System.out.println(s"Valor=$_") }
Run Code Online (Sandbox Code Playgroud)
有这个错误:
<console>:1: error: unclosed string literal
Run Code Online (Sandbox Code Playgroud)
而另一个成功:
List("a", "b").foreach { x => System.out.println(s"Valor=$x") }
Run Code Online (Sandbox Code Playgroud)
我怀疑不支持"_"变量.
这是一个bug还是设计?
以下代码是rubykoans about_classes.rb的摘录:
class Dog7
def initialize(initial_name)
@name = initial_name
end
def to_s
@name
end
end
Run Code Online (Sandbox Code Playgroud)
我创建了一个实例Dog7:
fido = Dog7.new("Fido")
Run Code Online (Sandbox Code Playgroud)
我理解以下内容:
"My dog is " + fido.to_s # => "My dog is Fido"
"My dog is #{fido.to_s}" # => "My dog is Fido"
Run Code Online (Sandbox Code Playgroud)
我不明白为什么以下插值有意义并给出相同的结果:
"My dog is #{fido}" # => "My dog is Fido"
Run Code Online (Sandbox Code Playgroud)
fido 不是一个字符串.
有谁知道如何重用插值的字符串?
即谁能string.Format在下面的代码块中弄清楚如何删除?
foreach(var s in new[]{ "Primary_{0}_Home", "Secondary_{0}_Work" }){
sql = $"SELECT {string.format(s, "Street")}, {string.format(s, "City")} ..."
}
Run Code Online (Sandbox Code Playgroud) 一个例子:
var a = $"Some value 1: {b1:0.00}\nSome value 2: {b2}\nSome value 3: {b3:0.00000}\nSome value 4: {b4:0.00}\nSome value 5: {b6:0.0}\nSome value 7: {b7:0.000000000}";
Run Code Online (Sandbox Code Playgroud)
这有点难以阅读.
我能做到
var a = $"Some value 1: {b1:0.00}\n" +
$"Some value 2: {b2}\n" +
$"Some value 3: {b3:0.00000}\n" +
$"Some value 4: {b4:0.00}\n" +
$"Some value 5: {b6:0.0}\n" +
$"Some value 7: {b7:0.000000000}";
Run Code Online (Sandbox Code Playgroud)
但是这里有一条评论说什么这将是多次调用string.Format,我认为它会(不知道如何检查它,IL对我来说是一个黑盒子).
问题:可以吗?拆分长插值字符串有哪些其他选项?
很抱歉提前购买大量代码.我担心我可能错过了一些在上下文中显而易见的东西.
def remove_runbook_items(runbook_id, runbook_item_id)
item_id = runbook_item_id.to_s
method = 'POST'
url = @the_endpoint
data = {
invokeDetail: {
process: 'remove_runbook_items',
parameters: {
runbook_id: runbook_id,
runbook_items: {
"#{item_id}": {
cores: options[:cores],
ram: options[:ram],
rank: options[:rank],
wait_time: options[:wait_time]
}
}
}
}
}
data.merge! @common_data
result = send_request(method, url, data.to_json)
result['resultDetail'] # Returns contents of response from REST API server
end
Run Code Online (Sandbox Code Playgroud)
有问题的行是"#{item_id}":{
称为"data"的文本块被转换为json,因此我必须插入字符串"item_id",否则它将在结果请求中吐出"item_id",而不是item_id的内容.实际上,如果有办法在没有插值的情况下获取内容,我很想知道它.
所以当我以这种方式插入我的字符串时,它在Ruby 2.3.1上运行得很好.但是,当我尝试在使用Ruby 1.9.3的机器上运行相同的代码时,我在任何地方插入一个字符串都会得到一连串的语法错误:
/home/mydir/mydir/mydir/mydir/mydir/restapi_helper.rb:1122: syntax error, unexpected ':', expecting tASSOC
"#{device_id}": {
^
/home/mydir/mydir/mydir/mydir/mydir/restapi_helper.rb:1128: syntax error, … 我在类中有这个只读字符串:
public static class XssProtectionConstants {
/// <summary>
/// {0} specifies the report url, including protocol
/// </summary>
public static readonly string Report = "1; report={0}";
}
Run Code Online (Sandbox Code Playgroud)
我想访问它并传入一个值,使它现在等于 "1; report=www.reportMyErrors.com"
这是为了这个单元测试断言:
Assert.AreEqual(_policyValue, XssProtectionConstants.Report );
Run Code Online (Sandbox Code Playgroud)
这个抛出:
Expected:<1; report=www.reportMyErrors.com>. Actual:<1; report={0}>. www.reportMyErrors.com
Run Code Online (Sandbox Code Playgroud)
如何更新我的断言以使其平等"1; report=www.reportMyErrors.com>"?
是否可以++在字符串插值中使用运算符?我尝试过以下方法:
my $i = 0;
foreach my $line (@lines) {
print "${i++}. $line\n";
}
Run Code Online (Sandbox Code Playgroud)
但我明白了 Compile error: Can't modify constant item in postincrement (++)
我遇到了C#6中嵌套字符串插值的问题.
例如,有一个字符串:
string test = "StartText MiddleText1 MiddleText2 EndText";
Run Code Online (Sandbox Code Playgroud)
如果我只想为MiddleText1 应用ToUpper()方法,我可以这样做:
string test = $@"StartText {"MiddleText1".ToUpper()} MiddleText2 EndText";
Run Code Online (Sandbox Code Playgroud)
但是,如果我想应用一个字符串方法,例如对这部分字符串的Replace(),该怎么办:
{"Middletext1".ToUpper()} MiddleText2
Run Code Online (Sandbox Code Playgroud)
我希望这样的东西能起作用:
string test = $@"StartText {"{"MiddleText1".ToUpper()} MiddleText2".Replace("x", "y")} EndText";
Run Code Online (Sandbox Code Playgroud)
但是这种语法是错误的 - 我尝试了很多变化,使用配额但我无法为此目的获得正确的语法.我希望不要将字符串分成不同的部分.有没有办法只使用插值功能来解决它?
我想为我的元素动态生成一个类名。例如,
<span class=``icon icon-${route.title}``></span>((这里必须使用双反引号,但实际上应该只是一组反引号。)
<ul class="sidebar-list">
<li *ngFor="let route of menuRoutes.items">
<span class=`icon icon-${route.title}`></span>
<a routerLink="/{{route.path}}" routerLinkActive="active">{{ 'menu.' + route.title | translate}}</a>
</li>
</ul>Run Code Online (Sandbox Code Playgroud)