小编We *_*age的帖子

"构造函数"函数应该返回错误还是空值?

给定一个构造函数,如

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)

go

9
推荐指数
1
解决办法
2034
查看次数

批处理文件 - TASKKILL/FI"WINDOW TITLE ..."无效

我正在尝试制作批处理文件:

  1. 推出互联网浏览器
  2. 等待Internet Explorer将本地.html文件加载到其Web浏览器中
  3. 等待弹出窗口加载
  4. 关闭在步骤1中打开的资源管理器窗口(不影响以前可能打开的任何网页)
  5. 闭嘴

我已经得到了除步骤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)

batch-file

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

Base64 SVG无法在Chrome中呈现,无法在Firefox中运行

我正在尝试从页面上的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)

html javascript base64 svg data-uri

4
推荐指数
1
解决办法
1679
查看次数

在 vscode 中平均分割窗口空间

是否有快捷方式、热键或任何其他方式将滚动条居中,在 vscode 中拆分窗口?理想情况下,我希望能够快速将窗口重新居中,并确保每个窗口都有相同的空间,但我在任何命令中都看不到这样做的方法。

visual-studio-code

3
推荐指数
1
解决办法
508
查看次数

三元运算符中的评估顺序

我有两个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>.

prefix_shortcode_statement_conditional输出

Lorem Ipsum ...
Run Code Online (Sandbox Code Playgroud)

prefix_shortcode_statement输出

<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 …

php

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

标签 统计

base64 ×1

batch-file ×1

data-uri ×1

go ×1

html ×1

javascript ×1

php ×1

svg ×1

visual-studio-code ×1