给定一个构造函数,如
func NewSomething(name, color string) *Something {
s := Something{name, color}
return &s
}
Run Code Online (Sandbox Code Playgroud)
此功能是否应包括健全性检查,例如&name == nil,或len(name) == 0?如果此函数应包含完整性检查,那么应从构造函数返回什么值?一个nil值,还是一个错误(errors.New(...))?下面是一个例子.
func NewSomething(name, color string) *Something {
if &name == nil || len(name) == 0 {
return nil
}
if &color== nil || len(color) == 0 {
return nil
}
s := Something{name, color}
return &s
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作批处理文件:
我已经得到了除步骤4之外的所有内容,使用下面显示的批处理文件.
cd "C:\Program Files\internet explorer"
start "CloseMe" iexplore.exe "file://C:\ProgramData\Schneider Electric\Citect SCADA 2016\User\1173051_SM_STP\Files\Stony Mountain Institute Lift Station.html"
TIMEOUT 3 & REM Waits 3
TASKKILL /IM iexplore.exe /FI "WINDOWTITLE eq CloseMe - Internet Explorer"
exit
Run Code Online (Sandbox Code Playgroud)
如果我注释掉退出命令并跳过第5步,我可以看到我收到的错误消息.这是INFO:没有使用指定条件运行的任务.
我运行了这个命令(感谢aschipfl),看起来我的Window Title没有被正确设置为CloseMe.
C:\ProgramData\Schneider Electric\Citect SCADA 2016\User\1173051_SM_STP\Files>tasklist /FI "IMAGENAME eq iexplore.exe" /v
Image Name PID Session Name Session# Mem Usage Status User Name CPU Time Window Title
========================= ======== ================ =========== ============ =============== ================================================== ============ ========================================================================
iexplore.exe 18076 Console 1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试从页面上的svg创建图像。但是,我无法svgToImage()在谷歌浏览器上使用该功能。我将浏览器切换为Firefox,所有生成的内容都没有任何问题。Firefox似乎会生成svg的不同base64表示形式,并且当该版本在google chrome中使用时,它可以工作,但该功能仍然无法创建图像。
查看一些调试日志,似乎Firefox将svg元素从<svg>变为<a0:svg>。这就是为什么这段代码在firefox中起作用的原因吗?如果是这样,是由于firefox修复而chrome忽略的名称空间不正确吗?
我已经发布了我用来测试的代码段。在chrome上,应该看到两个后盖,然后是残破的图像。在Firefox上,应该有三个黑匣子。
function svgToImage(target) {
// Works in firefox
// https://gist.github.com/Caged/4649511
var svg = document.getElementById(target);
var xml = new XMLSerializer().serializeToString(svg);
var data = 'data:image/svg+xml;base64,' + btoa(xml);
var image = new Image();
image.setAttribute('src', data);
document.body.appendChild(image);
}
//Generate another svg
svgToImage('aSVG');Run Code Online (Sandbox Code Playgroud)
<svg width="100" height="100" id="aSVG" xmlns="http://www,w3.org/2000/svg">
<rect id="someId" x="70" y="70" width="15" height="20" fill="#000" rx="5" ry="5" />
</svg>
<!-- generated from firefox -->
<img src="data:image/svg+xml;base64,PGEwOnN2ZyB4bWxuczphMD0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zPSJodHRwOi8vd3d3LHczLm9yZy8yMDAwL3N2ZyIgaWQ9ImFTVkciIGhlaWdodD0iMTAwIiB3aWR0aD0iMTAwIj4KCQkJPGEwOnJlY3Qgcnk9IjUiIHJ4PSI1IiBmaWxsPSIjMDAwIiBoZWlnaHQ9IjIwIiB3aWR0aD0iMTUiIHk9IjcwIiB4PSI3MCIgaWQ9InNvbWVJZCIvPgoJCTwvYTA6c3ZnPg==" ></img>Run Code Online (Sandbox Code Playgroud)
是否有快捷方式、热键或任何其他方式将滚动条居中,在 vscode 中拆分窗口?理想情况下,我希望能够快速将窗口重新居中,并确保每个窗口都有相同的空间,但我在任何命令中都看不到这样做的方法。
我有两个php片段:
function prefix_shortcode_statement_conditional( $atts, $content = null ) {
return '<li class="some-class">' . $content == null ? '' : $content . '</li>';
}
function prefix_shortcode_statement( $atts, $content = null ) {
return '<li class="some-class">' . $content . '</li>';
}
Run Code Online (Sandbox Code Playgroud)
第一个片段有一个条件语句返回一个空字符串作为<li>内容,而第二个片段只返回包含的内容<li>.
Lorem Ipsum ...
Run Code Online (Sandbox Code Playgroud)
<li class="some-class">
Lorem Ipsum ...
</li>
Run Code Online (Sandbox Code Playgroud)
如您所见,只有没有条件语句的函数才能正确生成<li>元素.为什么一个代码段生成代码,而不是另一个?
在括号中包含条件可以解决问题,但无法帮助我理解为什么问题首先出现.
return '<li class="some-class">' . ($content == null ? '' : $content) . '</li>';
Run Code Online (Sandbox Code Playgroud)
据我所知,php应该将结尾解释</li>为条件语句的一部分,但却没有.而不是添加$content . '</li>'到输出,它只是返回$content …