当专门处理非可选String值时,字符串插值和字符串连接之间有什么区别?
struct MyModel {
let value1: String
let value2: String
var displayNameByConcatenation: String {
return value1 + "-" + value2
}
var displayNameByInterpolation: String {
return "\(value1)-\(value2)"
}
}
Run Code Online (Sandbox Code Playgroud)
displayNameByConcatenation和displayNameByInterpolation不同的情况?就像长 unicode 字符串一样?+或插值的行为以使它们在上面的示例中有所不同?请注意,从这个问题中我们了解到字符串插值将使用descriptionCustomStringConvertible 的 。但是String串联(运算符+)也调用吗description?
string string-concatenation string-interpolation swift swift3
我想创建一个组件,其中包含一个ng-select组件,我向该组件传递一组复杂对象以及要在下拉列表中显示的字段和所选值的定义。您可以ng-select指定要显示的字段 ( bindLabel) 并定义一个模板来显示所选值(您可以显示对象中的一个或多个字段或其他 HTML 标记)。我能够传递 的值bindLabel,但无法弄清楚如何插入模板。
例如,这就是我通常使用的方式ng-select。在本例中,我显示对象的两个字段和一些 HTML(将缩写字段加粗),并在下拉列表中列出缩写字段:
子组件
items = [
{ name: 'United States', abbreviation: 'US' },
{ name: 'United Kingdom', abbreviation: 'UK' },
{ name: 'Canada', abbreviation: 'CA' }
];
displayField = 'abbreviation';
Run Code Online (Sandbox Code Playgroud)
子模板
<ng-select [items]="items"
bindLabel="displayField"
[(ngModel)]="model"
name="ngselect"
(change)=emitModelChanged()>
<ng-template ng-label-tmp let-item="item">
<b>{{item.abbreviation}}</b> - {{item.name}}
</ng-template>
</ng-select>
Run Code Online (Sandbox Code Playgroud)
要从父组件动态配置它,我传递items,displayField和template作为输入:
父组件
selectedTemplate = '<b>{{item.name}}</b> - {{item.abbreviation}}';
Run Code Online (Sandbox Code Playgroud)
父模板
<child-component [model]=model
[items]=items
[displayField]="'abbreviation'"
[template]=selectedTemplate …Run Code Online (Sandbox Code Playgroud) 目前,以下方法有效,但我知道这是不好的做法,我不想在将来因这种实现而遇到问题。
export const loginQuery = ({ email, password }) => `
mutation login {
login(email: "${email}", password: "${password}") {
authToken
}
}
`;
export default ({ url, method, userPath }) => {
cy.fixture(userPath).then(res => {
const query = loginQuery(res);
cy.request({
method,
url,
headers: { 'Content-Type': 'application/json' },
body: { query },
failOnStatusCode: false
});
});
};
Run Code Online (Sandbox Code Playgroud)
如何正常传入变量而不是通过字符串插值手动执行?
我这样写的原因是因为我不能使用react-apollo/ graphql-tag。我已经尝试过,但是graphql需要react-apollo将其包装在一个不适用于此 cypress 上下文的组件中。
注意:上述实现不适用于对象/数组。我需要手动传入突变中写出的对象中的特定键,而不仅仅是一个变量来表示整个对象。这显然是一个问题。
我有一个 powershell post 请求,Invoke-WebRequest但是当我包含 ? 它认为它是一个变量,有任何方法可以逃避这个问题,这是我的代码
Invoke-WebRequest -UseBasicParsing -Method POST https://192.168.240.1:443/recive/$name?result=$sendback
Run Code Online (Sandbox Code Playgroud)
它认为 name 和后面的所有内容都是一个变量,我知道这一点,因为我可以看到它在 Windows 终端中全部突出显示为绿色
variables powershell escaping string-interpolation invoke-webrequest
我正在 Perl 中编写一个函数,其中一个字符串作为参数传递,我需要将该字符串解释为引用的值。该字符串看起来像这样:
"Edible => 1;Fruit => STRAWBERRY;"
现在,变量部分将使用散列存储,但是,该值已经使用常量定义。我的问题是,一旦我将值存储到临时变量中,如何将其转换为常量的值?这是一些示例代码:
#!/usr/bin/perl
require Exporter;
our @ISA = 'Exporter';
our @EXPORT = qw(STRAWBERRY TANGERINE PEAR APPLE PERSIMMON FUNC_Interpreter);
use constant {
STRAWBERRY => 1
,TANGERINE => 2
,PEAR => 3
,APPLE => 4
,PERSIMMON => 5
};
sub FUNC_Interpreter {
my ($analyze_this) = @_;
my @values;
foreach my $str (split (/;/, $analyze_this)) {
my ($key, $value) = split /=>/, $str;
push (@values, @{[ $value ]}); # Problem line! I want to store the …Run Code Online (Sandbox Code Playgroud) Delphi 12 引入了多行字符串,我试图弄清楚它是如何工作的,来自 JavaScript 背景。在那里我可以直接在多行字符串中包含变量,例如:
const myName = 'Martin';
const myString = `Hi ${myName},
Say hello to
multi-line
strings!`;
Run Code Online (Sandbox Code Playgroud)
这将替换${myName}为变量的内容。在 Delphi 中如何使用新的'''多行字符串来实现这一点?
delphi string-interpolation multilinestring delphi-12-athens
我正在尝试正确插入此字符串:
/test/test?Monetization%20Source=%d&Channel%20Id=%d' % (mid, cid)
Run Code Online (Sandbox Code Playgroud)
我希望%20按原样渲染,%d用作变量mid和cid的place-holderes.我该怎么做呢?
重新格式化此PHP语句以说"版权所有©2013 My Company.保留所有权利"的正确方法是什么.(没有引号)?
<?php _e('All Rights Reserved', 'mycompany'); ?> <a href="/">My Company</a> © <?php echo date('Y');?>
截至目前,上述声明呼应"版权所有我公司©2013".
即使它是双引号,并且%s应该插入到不存在的哈希,这是有效的Perl和输出"confusing = true".
#!/usr/bin/perl -w
use strict;
my $what = "confusing = %s";
printf $what, "true";
Run Code Online (Sandbox Code Playgroud)
但是,这是无效的(如预期的那样),因为$ s不存在:
my $what = "confusing = $s";
Run Code Online (Sandbox Code Playgroud) 如何使用变量访问哈希值?这是我的不起作用:
DHASH = { 0 => -0.8,
1 => -0.54,
2 => -0.32,
3 => -0.14,
4 => 0,
5 => 0.1 }
print "Enter number "
num = gets.chomp()
puts "Value: DHASH[#{num}]"
Run Code Online (Sandbox Code Playgroud)
输出:
Enter number 2
Value: DHASH[2]
Run Code Online (Sandbox Code Playgroud)
我想要的是:
Enter number 2
Value: -0.32
Run Code Online (Sandbox Code Playgroud)