小编1.4*_*4mb的帖子

Ruby检查块是否为零

我用一个块调用一个方法;

method do
  "Hello"
end
Run Code Online (Sandbox Code Playgroud)

并且该方法被定义为;

def method
  yield
end
Run Code Online (Sandbox Code Playgroud)

在定义方法时 ; 我想检查给定的块是否为空(零),因为方法中的变量可能会像这样结束;

method do
  ""
end
Run Code Online (Sandbox Code Playgroud)

所以在定义中,我想检查yield块是否为nil.喜欢;

def method
  if yield ? yield : "Empty block? Seriously?"
end
Run Code Online (Sandbox Code Playgroud)

我知道上面的内容不起作用.这就是我想要实现的目标.

另请记住block_given?将始终为"true",因为即使它是nil空字符串,也会给出块.

更新:由于大多数意见/答案都表明问题不明确; 这是@ndn简化的问题:

我想检查执行块的结果是否为"空"(nil或"")而不先调用它.

ruby yield

10
推荐指数
3
解决办法
9677
查看次数

Ctrl+p 与 window.print() 导致不同的页面设计

我使用 JavaScript 显示打印页面window.print(),但与打印对话框相比,它显示不同的设计Ctrl + p

还有其他方法可以使用Ctrl + p与中相同的设计来实现window.print()吗?

html javascript printing google-chrome

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

DataTable.Load,一或多个行包含违反非空,唯一或外键约束的值

我进行了很多搜索,但找不到解决方案。

我得到错误:

无法启用约束。一或多个行包含违反非null,唯一或外键约束的值。

我运行DataTable.GetErrors(),发现Not NULL在SQL Compact Edition数据库中将某些列设置为。这些列用于LEFT OUTER JOIN查询中,因此在运行查询时它们为null。(当我在VS的Server Explorer中运行查询时,可以得到结果)。尝试在数据表中加载数据时发生错误:

using (SqlCeCommand Cmd = new SqlCeCommand("Query HERE", "Connection HERE"))
                {
                    C.Open();
                    using (SqlCeDataReader Rdr = Cmd.ExecuteReader())
                    {
                        DataTable DT = new DataTable();
                        DT.Load(Rdr);
                        return DT;
                    }
                }
Run Code Online (Sandbox Code Playgroud)

我尝试了许多解决方案来克服此问题,但是我无法解决它。我知道“ EnforceConstraints”,但是由于我不使用任何数据集,因此无法更改该属性。

c# .net-4.0

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

标签 统计

.net-4.0 ×1

c# ×1

google-chrome ×1

html ×1

javascript ×1

printing ×1

ruby ×1

yield ×1