小编Luc*_*fen的帖子

Ruby on Rails 4:采用哈希结果

我怎么能转:

Person.all.pluck(:id, :name)
Run Code Online (Sandbox Code Playgroud)

[{id: 1, name: 'joe'}, {id: 2, name: 'martin'}]
Run Code Online (Sandbox Code Playgroud)

不必.map每个值(因为当我从.pluck添加或删除时,我必须与.map相同)

ruby ruby-on-rails-4

18
推荐指数
5
解决办法
1万
查看次数

Delphi异常处理,使用E:Exception或ExceptObject

我们有2个应用程序,第一个是VCL项目,另一个是Windows服务.

在VCL项目中我们做到:

try
except
  on E: Exception do
    // do something with E.Message
end
Run Code Online (Sandbox Code Playgroud)

但在Windows服务(使用多个线程)中我们使用:

try
except
    // do something with Exception(ExceptObject).Message
end
Run Code Online (Sandbox Code Playgroud)

我从同事那里获得的信息是"我们必须在线程中使用ExceptObject,在使用GUI的应用程序中使用E:Exception".但我找不到任何关于此事的内容.

我在这里找到了一个例子http://edn.embarcadero.com/article/10452,它使用一个实例变量来存储异常并使用ExceptObject,但没有解释原因.

这个ExceptObject是否是线程安全的(因为它来自单元'System')?

那么在Delphi中处理异常的正确方法是什么?为什么有多种方法可以做到这一点?

delphi multithreading exception-handling

10
推荐指数
2
解决办法
1497
查看次数

C++ EOF 命名空间

那么,出于好奇,为什么 EOF 没有定义命名空间呢?为什么不是::EOFstd ::EOF

#include <cstdio>

while (std::scanf("%s", someStr) != ::EOF); // nope
while (std::scanf("%s", someStr) != std::EOF); // nope
while (std::scanf("%s", someStr) != EOF); // here we go
Run Code Online (Sandbox Code Playgroud)

c c++ namespaces std eof

5
推荐指数
1
解决办法
717
查看次数

检查TClientDataset中是否更改了行

我有一个带有n个字段的TClientDataset,我必须循环遍历它们以计算有多少已经改变但是做了:

if (Cds.fields1.Value <> Cds.fields1.OldValue) and (Cds.fields2.Value <> Cds.fields2.OldValue) etc....
Run Code Online (Sandbox Code Playgroud)

或者通过Cds.fields循环[I]不是很"干净"

有Cds.RowChanged方法还是什么?

delphi tclientdataset

5
推荐指数
1
解决办法
1724
查看次数

这个在Delphi中调用的"循环继承"是什么?

前几天我看到了这样的代码:

type
    TcxGridTableControllerAccess = class (TcxGridTableController);

    TMycxGridDBTableView = class (TcxGridDBTableView)
    protected
        function GetViewDataClass: TcxCustomGridViewDataClass; override;
    end;

    TMycxGridViewData = class (TcxGridViewData)
    protected
        function GetFilterRowClass: TcxGridFilterRowClass; override;
    end;

    TMycxGridFilterRow = class (TcxGridFilterRow)
    protected
        procedure SetValue(Index: Integer; const Value: Variant); override;
    end;

    TcxGridDBTableView = class (TMycxGridDBTableView);
Run Code Online (Sandbox Code Playgroud)

TMycxGridDBTableView继承自继承自TMycxGridDBTableView的TcxGridDBTableView.搜索循环继承但仅搜索Java结果.

这个叫什么?

Ps:我没有完整的可构建代码.

delphi inheritance

4
推荐指数
2
解决办法
208
查看次数

返回对象时为什么不直接使用Result变量?

我在很多例子中看到过创建一个与Result类型相同的变量,并在函数末尾分配给它,而不是仅仅在第一个位置使用Result变量.

例如,在System.JSON中的代码中

class function TJSONObject.ParseJSONValue(
  const Data: TArray<Byte>; 
  const Offset: Integer; 
  const ALength: Integer; 
  Options: TJSONParseOptions
): TJSONValue;
var
  Parent: TJSONArray;
  Answer: TJSONValue;
  Br: TJSONByteReader;
begin
  Parent := TJSONArray.Create;
  Answer := nil; { Why not just use Result directly here? }
  Br := TJSONByteReader.Create(
          Data, 
          Offset, 
          ALength, 
          TJSONParseOption.IsUTF8 in Options
  );
  try
    ConsumeWhitespaces(Br);
    if 
      (ParseValue(Br, Parent, TJSONParseOption.UseBool in Options) = ALength) 
      and
      (Parent.Count = 1)
    then
      Answer := Parent.Pop; { Why not just use Result directly here? }
    Result := …
Run Code Online (Sandbox Code Playgroud)

delphi

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

printf()返回可以与strlen()不同吗?

只是出于好奇:

#include <stdio.h>
#include <string.h>

enum { BIG_NUMBER = 1024 };

int main(void)
{
    char mysterious_string[BIG_NUMBER];

    if (scanf("%1023s", mysterious_string) == 1) {

        if (printf("%s", mysterious_string) != strlen(mysterious_string)) {
            // Can this state occur?
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

内在的'if'能否真实回归?我可以盲目地信任这两个函数(printf()strlen())来返回正确的值吗?

c string

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

将字段添加到clientdataset或动态访问它?

如果并且可以执行Cds.FieldByName('field'),那么向TClientDataset添加字段有什么意义.

参考是否更快?是否"更清楚"?

delphi tclientdataset

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

这个在Delphi中调用的"循环继承"是什么?

前几天我看到了这样的代码:

type
    TFather = class;
    TSon = class(TFather);
    TFather = class(TSon);
end;
Run Code Online (Sandbox Code Playgroud)

儿子继承自继承自儿子的父亲.搜索循环继承但仅搜索Java结果.

这个叫什么?

delphi inheritance

0
推荐指数
1
解决办法
188
查看次数