我有一长串需要导入的可能文件.我只需要其中一个,它们都有相同的界面.(选择付款网关处理付款)
假设我有一个代表所有网关文件名称的字典.
即
gateways = {
'1' : 'authorize',
'2' : 'paysimple',
'3' : 'braintreepayments',
'4' : 'etc',
}
Run Code Online (Sandbox Code Playgroud)
我根据数据库中的信息知道了这本词典的关键.因此,如果我收到网关值为1的付款流程请求,我知道它需要由Authorize.net处理.Pay 2将由Pay Simple处理.等等.
我希望能够创建一个使用我所知道的信息构建的import语句,而不是一个可怕的elif语句列表.
考虑下面的简单方法:
# For the purposes of this example assume payment_gateway is defined
# elsewhere and represents the key to the dictionary
gateway_file = gateways.get(payment_gateway)
import_str = "from gateway_interface.%s import process" % gateway_file
gogo(import_str)
Run Code Online (Sandbox Code Playgroud)
gogo导致import语句实际导入的方法在哪里.
这样的事情可能吗?
我有一个像这样的字符串:
'say "Twenty-five minutes remaining."'
Run Code Online (Sandbox Code Playgroud)
如何将更多动态内容插入到该消息中?我已经知道下面的方法不起作用,因为内容是按字面意思返回的.
'say "#{minutes_remaining} minutes remaining."'
Run Code Online (Sandbox Code Playgroud) 我不能强烈地提出我现在需要的东西,但这个想法是这样的:
用户输入一些看起来像模板的字符串
'Welcome to #{country}!' # or 'Welcome to %%country%%!', it's not essential
Run Code Online (Sandbox Code Playgroud)
是否有一些宝石(或可能是像Erb这样的标准工具),可以做两件事:
验证给定的字符串(即,如果我允许仅country作为参数传递,则具有其他参数的字符串将无效)
使用传递的参数插入给定的字符串(即some_method('Welcome to #{country}!', country: 'Russia')) # => 'Welcome to Russia!')
是否可以选择带插值的元素?我有一个带字符串的var
inputId = "awesomeInput"
Run Code Online (Sandbox Code Playgroud)
我想选择ID为"awesomeInput"的输入.我试着这样做,就像我通常用jquery做的那样
$("#{inputId}")
Run Code Online (Sandbox Code Playgroud)
console.log告诉我已经选择了某些东西,但我试图在这个对象上执行的任何函数都失败了.没有错误,也没有效果.像这样:
$("#{inputId}").show()
Run Code Online (Sandbox Code Playgroud)
如何选择像这样的jquery元素,而不是显示它?
我有以下字符串:
barrelRepDoc='{"'"_id"'":"'"push_$systemName"'","'"source"'":"'"$systemName"'","'"target"'":"'"platform2ReplicationTargetBaseURL/$systemName"'","'"create_target"'":true,"'"continuous"'":true,"'"user_ctx"'":{"'"name"'":"'"admin"'","'"roles"'":["'"_admin"'"]},"'"owner"'":"'"admin"'"}'
Run Code Online (Sandbox Code Playgroud)
我将该字符串作为-d参数传递给cURL字符串,如下所示:
barrelRepcURL="curl -u $username:$password -X POST couchURL/db -H 'Content-Type:application/json' -d '$barrelRepDoc'"
Run Code Online (Sandbox Code Playgroud)
然后我在这一行执行命令:
barrelRepcURLresponse=$($barrelRepcURL)
Run Code Online (Sandbox Code Playgroud)
我收到了无效的JSON.但是,如果我打印出$ barrelRepcURL,我会得到一个字符串,该字符串在粘贴到终端时应该执行.
我想要反馈cURL命令,这就是我使用字符串的原因.(echo $barrelRepcURLresponse)
如何在cURL命令字符串中包含barrelRepDoc并保留有效的JSON?
我正在努力创建一个可重用的UI组件,并试图弄清楚如何允许组件的使用者为组件的特定区域提供自己的模板.
我正在使用打字稿,并试图利用字符串插值来实现这一点,因为它似乎是最合适的行动方案.
这是我到目前为止:
export class Pager {
pageNumber: number = 1;
getButtonHtml(buttonContentTemplate?: string, isDisabled?: boolean): string {
buttonContentTemlpate = buttonContentTemplate || '${this.pageNumber}';
isDisabled = isDisabled || false;
return `<button id="button-id" type="button" ${!isDisabled ? '' : disabledAttribute}>
${buttonContentTemplate}
</button>`;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一些其他的方法将根据用户输入/交互更新页码,但我希望它getButtonHtml在调用时工作,返回值将是<button id="button-id" type="button">1</button>,但我得到了<button id="button-id" type="button">${this.pageNumber}</button>.
有没有办法让javascript再次评估字符串,并插入剩余的占位符?
我看过关于这个主题的MDN文章,并认为该String.raw方法可能是我需要使用的方法,但我不确定,无论我尝试什么,我都没有得到它的工作.
任何帮助将不胜感激.
我对Ruby很新,并且总是假设这两个符号是插入实例变量的相同方式,直到我注意到下面的示例代码中'vendor'参数的不同之处.
class Component
def initialize(name, version)
@vendor = "vendor"
@name = name
@version = version
puts "#{@vendor}-@#{name}-@#{version}"
end
end
ConfiguredComponent.new("param1", "param2")
Run Code Online (Sandbox Code Playgroud)
=>这个有效
class Component
def initialize(name, version)
@vendor = "vendor"
@name = name
@version = version
puts "@#{vendor}-@#{name}-@#{version}"
end
end
ConfiguredComponent.new("param1", "param2")
Run Code Online (Sandbox Code Playgroud)
=>使用@#vendor}表示法不起作用=> :'initialize':未定义的局部变量或方法`vendor'for#(NameError)
class Component
def initialize(name, version)
@vendor = "vendor"
@name = name
@version = version
puts "#{@vendor}-#{@name}-#{@version}"
end
end
Component.new("param1", "param2")
Run Code Online (Sandbox Code Playgroud)
=>这也有效
我有以下代码,我试图使用字符串插值访问嵌套的映射值.但是,它返回整个变量而不仅仅是特定值.
Map<String, Map<String, String>> questionBank = {
"1": {
"question": "What is the capital of Canada?",
"ans1": "Toronto",
"ans2": "Montreal",
"ans3": "Ottawa",
"ans4": "Vancouver"
},
"2": {
"question": "What is the capital of Britain?",
"ans1": "London",
"ans2": "Manchester",
"ans3": "Newcastle",
"ans4": "Edinburgh"
}
};
void main() {
print('Question: $questionBank[1][question]');
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?感谢任何见解.
我知道我们可以将任何代码#{}放在Ruby中,代码#{}将被计算然后插入到字符串中.
Perl中有没有相同的东西?
我有一个类似的文字"$ $abc $$abc ${a} ${}".我想完全禁用字符串的字符串插值,而不是$从字符串中转义每个字符串.我该怎么办?在Scala中,您声明一个字符串,其中启用插值,s"$ $abc $$abc ${a} ${}"而不插入普通字符串.
ruby ×3
bash ×1
coffeescript ×1
curl ×1
dart ×1
ecmascript-6 ×1
flutter ×1
import ×1
javascript ×1
jquery ×1
kotlin ×1
perl ×1
python ×1
typescript ×1