我有某些场景(例如,保存 Sql 参数的自定义类),其中可能需要也可能不需要变量。传统上,我总是定义这些类型Guid?,并myGuid.HasValue在使用之前检查有效值。
当然,在实践中,我也可以使用常规Guids 并使用 执行有效值检查myGuid == Guid.Empty。
为了便于阅读,我更喜欢第一种用法,因为它感觉更干净,但如果有人能建议其中一种方法是否比另一种更好(更快、更快或更正确),我将不胜感激。
我的条件是,当我将tableview滚动到底部或顶部时,我需要做一些重新加载,刷新作业,从服务器请求新数据,但我想检查上一个作业是否完成.如果最后一个请求仍然有效,我不应该发出另一个请求.
我正在使用从dispatch_queue_create()创建的相同后台队列来处理httpRequest.
- (id)init {
self = [super init];
if (self) {
...
dataLoadingQueue = dispatch_queue_create(@"DataLoadingQueue", NULL);
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
从现在开始,我只使用BOOL值来检测作业是否正在工作.像这样的东西:
if(!self.isLoading){
dispatch_async(dataLoadingQueue, ^{
self.isLoading = YES;
[self loadDataFromServer];
});
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有任何方法可以将代码更改为如下所示:
if(isQueueEmpty(dataLoadingQueue)){
dispatch_async(dataLoadingQueue, ^{
[self loadDataFromServer];
});
}
Run Code Online (Sandbox Code Playgroud)
因此,我可以删除显示在任何地方并需要继续跟踪的烦人的BOOL值.
我只是在应用程序中实现了登录功能,所以我想知道是否有一种方法可以检查记录器是否为空。
我要记住的是在脚本中设置两个处理程序:
WARNINGDEBUG在脚本末尾,我需要检查CONSOLElogger是否为空。这意味着在运行期间,level >= WARNING记录了一些消息,在这种情况下,我想将调试级别的日志文件发送smtp到我的邮箱。
是否可以在python脚本本身内部进行此检查,而无需将Shell重定向到文件?
更新 - 2016年3月24日
我想概括一下这些问题,但看起来它已被理解为具体,我的不好.这个答案是对我之前使用的例子的100%解决方案.
请参阅此CodePen
所以Style空文本框背后的想法是
textbox:empty ~ label {
// position it as floating label
}
Run Code Online (Sandbox Code Playgroud)
看起来现在不可能在CSS中,可能在将来.
更新 - 2016年3月23日
这个答案很接近.
但是使用:invalid不是一种选择,因为它使字段成为必需的required=true属性.

请使用javascript 参考此CodePen以获得所需的行为.演示是为了解释它应该如何表现,使用javascript不是预期的行为.使用的颜色也只是为了对比,与验证无关
有没有办法用CSS设置空文本框的样式?
我试过,不幸的是总是被检测为空; 因为它没有子节点或文本节点.确切地说,是一个自动关闭的标签.:empty pseudo-classtextboxtextbox
:empty伪类表示任何没有子元素的元素.仅考虑元素节点和文本(包括空格).
任何指针都会有所帮助.
在 ASP 中,未初始化的会话变量为空。我知道检查 Session 值和删除值的正确方法如下:
IF NOT IsEmpty(Session("myVar")) THEN
' Go ahead and use Session("myVar")
...
' Now if we're all done with myVar then remove it:
Session.Contents.Remove("myVar")
END IF
Run Code Online (Sandbox Code Playgroud)
我继承了一个代码库,其中 Application 和 Session 变量通常= ""在使用后设置,并且对值的所有测试都采用(Sessions("myVar") = ""). 当 Session 变量没有被声明时,这个测试似乎有效......或者它可能只是靠运气。
使用与空字符串的比较来测试 Session 变量是否安全?即,以下“实际上和上面显示的正确方法一样好”吗?
IF Session("myVar") <> "" THEN
' Go ahead and use Session("myVar")
...
' Now if we're all done with myVar then blank it:
Session("myVar") = ""
END IF
Run Code Online (Sandbox Code Playgroud)
或者我应该重构代码库,以便:
我不是程序员,所以我对解决方案毫无头绪.我一直在使用CMB2 作为投资组合/项目自定义帖子类型.
我已经合并了一个幻灯片,它为每张幻灯片使用了Group Field元数据.
在主页上有2个标有"空项目"和"测试项目1"的帖子.如果单击空项目,您将被定向到它的单个帖子页面,在那里您将看到一个带有红色背景的".flexslider"div.如果组字段为空,那就是我要删除的div.我的意思是我完全删除div而不留空div而不是将背景颜色改为白色.
如果单击"测试项目1",将在"flexslider"幻灯片中使用可重复组字段上载图像.这是Metafields内部元数据保存的结果.
METABOX // 这是我用来注册可重复字段的代码,它允许我插入幻灯片的图像和标题.
add_action( 'cmb2_admin_init', 'gallery_metabox' );
function gallery_metabox() {
$prefix = 'gallery_';
/**
* Repeatable Field Groups
*/
$cmb_group = new_cmb2_box( array(
'id' => $prefix . 'metabox',
'title' => __( 'Gallery', 'cmb2' ),
'object_types' => array( 'portfolio', ),
) );
// $group_field_id is the field id string, so in this case: $prefix . 'demo'
$group_field_id = $cmb_group->add_field( array(
'id' => $prefix . 'demo',
'type' => 'group',
'options' => array(
'group_title' => __( …Run Code Online (Sandbox Code Playgroud) 所以我有这样的脚本通过javascript制作一个2x2表
function createtable(){
var tbl = document.getElementById('x');
if (tbl.contains()==false){
tbl.setAttribute('border', '1');
var tbdy = document.createElement('tbody');
for (var i = 0; i < 2; i++) {
var tr = document.createElement('tr');
for (var j = 0; j < 2; j++) {
var td = document.createElement('td');
tr.appendChild(td);
td.style.height='50px';
td.style.width='50px';
}
tbdy.appendChild(tr);
}
tbl.appendChild(tbdy);
}
<form>
<input type="button" value="Create Table" onclick="createtable()"> <br>
</form>
<table id="x"> </table>
Run Code Online (Sandbox Code Playgroud)
我想检查表x是否包含任何内容以创建自己.我试图使用contains()来检查,但它不起作用.
我们正在 Ubuntu 服务器上使用带有 nodejs 的 chokidar 监视文件更改。它工作得很好,但有时我认为我们在更改时保存文件的方式有问题:在 chokidar 中触发了“onchange”事件,但是当我们在回调中读取文件时,它是空的或(很少)没有写完全。我们不知道这是由写入文件的文本编辑器、客户端计算机上的操作系统、服务器上的操作系统或文件系统 (ext4) 引起的问题,还是 chokidar 中的某种错误。
这个空文件问题现在几乎每次都会发生,因为在使用 sublime 3 的一台计算机(mac,最新的 osx 版本)上进行了文件更改。在 sublime 中,我们尝试了设置“atomic_save”(创建一个临时文件然后覆盖原始文件),但它没有解决我们的问题:
我们之前在使用 phpstorm 时遇到过这个问题,但是在切换到 “使用“安全写入”(首先将更改保存到临时文件)”之后——所以与 sublime 中的 atomic_save 设置相同,这也是我们在 sublime 中尝试 atomic_save 的原因——onchange完成写入后事件被正确触发。
所以我们的问题是,有没有办法在文件以某种方式完全写入时触发“onchange”(在 chokidar、OS、sublime 中)?或者我们是否必须在“onchange”事件中检查文件大小直到一段时间没有改变(不太好)?或者我们的问题可能是由于其他原因造成的?
我们将不胜感激任何提示!提前致谢!
我正在尝试使用SUMIFS来总结几个条件。我希望我的总和范围是A 列,我的第一个条件范围是B 列,条件是B 列中有一些东西,或者本质上它不是空白/0。下一个标准是C 列是否与年份匹配,这很简单,我可以让它发挥作用,但我的问题出自第一次测试的标准。我试过了:
SUMIFS(column A, column B, column B > 0, column C, "16")SUMIFS(column A, column B, column B <> 0, column C, "16")SUM(SUMIFS(column A, column B, "1", column C, "16"), SUMIFS(column A, column B, "2", column C, "16"), SUMIFS(column A, column B, "3", column C, "16")...显然,我不想使用选项 3,但它似乎确实给了我正确的结果。如果我知道 B 列中的数字始终低于 5,那么我可以使用它,但截至目前,我必须假设 B 列中的数字可以是 0-1000。有什么我在这里想念的吗?如果B 列不是空白或 0,
我想要做的就是总结A列。谢谢。
如何以优雅的方式检查多个字符串是否为空?这就是我目前的做法:
//if one required field is empty, close the connection
if (registerRequest.Email == "") ||
(registerRequest.PhoneNumber == "")||
(registerRequest.NachName =="") ||
(registerRequest.VorName =="") ||
(registerRequest.Password =="") ||
(registerRequest.VerificationId ==""){
//Could not proceed
w.WriteHeader(UNABLE_TO_PROCEED)
w.Write([]byte("Unable to register account."))
return
}
Run Code Online (Sandbox Code Playgroud)