小编mkj*_*sen的帖子

在protobuf 2中编码"可空"字段的首选方法是什么?

我正在定义一个ProtoBuf消息,我想要一个"可以为空"的字段 - 即,我想要区分具有值而没有值的字段.举一个具体的例子,假设我有"x"和"y"字段来记录某个对象的坐标.但在某些情况下,坐标是未知的.下面的定义将无法正常工作,因为如果x或y是不确定的,那么他们默认为零(这是一个有效的值):

message MyObject {
    optional float x = 1;
    optional float y = 2;
}
Run Code Online (Sandbox Code Playgroud)

一种选择是添加一个布尔字段,记录相应字段的值是否已知.即:

message MyObject {
    optional bool has_x = 1; // if false, then x is unknown.
    optional bool has_y = 2; // if false, then y is unknown.
    optional float x = 3; // should only be set if has_x==true.
    optional float y = 4; // should only be set if has_y==true.
}
Run Code Online (Sandbox Code Playgroud)

但这会增加一些额外的簿记 - 例如,当我设置x字段的值时,我必须始终记住也设置has_x.另一种选择是使用列表值,其中列表总是长度为0或长度为1:

message MyObject {
    repeated float …
Run Code Online (Sandbox Code Playgroud)

protocol-buffers

8
推荐指数
1
解决办法
6933
查看次数

MySQL在日期范围内汇总值

我有一个表,每行包含一个日期和一些任意的数值.我需要将此值与特定但动态的日期间隔相加.

SELECT VERSION();
5.0.51a-24+lenny5

CREATE TABLE IF NOT EXISTS `work_entries` (
  `entry_id` int(10) unsigned NOT NULL auto_increment,
  `employee_id` tinyint(3) unsigned NOT NULL,
  `work_date` date NOT NULL,
  `hour_count` tinyint(3) unsigned NOT NULL,
  PRIMARY KEY  (`entry_id`)
);

INSERT INTO `work_entries` (`entry_id`, `employee_id`, `work_date`, `hour_count`) VALUES
(1, 1, '2011-04-25', 2),
(2, 1, '2011-04-26', 3),
(3, 1, '2011-04-27', 1),
(4, 2, '2011-04-25', 2),
(5, 2, '2011-04-27', 4),
(6, 1, '2011-05-08', 2),
(7, 2, '2011-05-06', 8),
(8, 2, '2011-05-08', 9),
(9, 2, '2011-05-09', 1),
(10, …
Run Code Online (Sandbox Code Playgroud)

mysql date between

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

从代码中引用字符串资源

我在strings.xml中声明了以下字符串:

<string name="last_msg">Your last click was on</string>
Run Code Online (Sandbox Code Playgroud)

现在当有人点击按钮时,我希望textview显示带有空格的字符串,然后显示一个时间戳的变量值.

不幸的是,使用@ string/last_msg不起作用,我不知道如何正确地做到这一点所以我不是硬编码的内容.

这是我的onClick函数的代码:

public void showMsgNow(View view) {
    TextView lastMsg = (TextView)findViewById(R.id.textView2);
    long currentTimeStamp = System.currentTimeMillis();
    lastMsg.setText(@string/last_msg + " " + currentTimeStamp);
}
Run Code Online (Sandbox Code Playgroud)

我是新手,任何帮助都会很棒!

string android settext

5
推荐指数
3
解决办法
2万
查看次数

版本控制app/manifest-merger-release-report.txt?

从Build菜单生成签名的APK时,我最终得到了新文件app/manifest-merger-release-report.txt.这个文件是什么,应该是版本控制的(比如ProGuard的mapping.txt)?

android android-studio

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

使用PHP生成CSS,是/否?

有什么理由你不应该使用PHP来克服CSS的一些缺点?实时检查会更难,但有任何功能上的缺点吗?

css php browser stylesheet

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

将多页 PDF 文件的第一页转换为 PNG

如果PDF有多个页面,如何让imagemagick只将第一页输出为文件(PNG)?

imagemagick

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

在Drupal中将元素表单作为数组

使用Drupal 6.20.

我们可以设置一些这样的表单元素: -

<input type="select" name="somename[]"><option>ohai</option></select>
Run Code Online (Sandbox Code Playgroud)

然后在PHP中循环使用它们

foreach ($somename as $name) { ... }
Run Code Online (Sandbox Code Playgroud)

我想在Drupal中做同样的事情.我有一个select-elements相同的风格列表.元素的数量可能在将来发生变化,因此表单处理必须是动态的.

如果我使用上述方法,每个元素将覆盖前一个元素,因此最终只有一个元素被打印到屏幕上.我不能写name="somename[$someid]",因为不会解释$somename为数组.
Drupal支持这个还是我做它?

另外,还有其他方法可以达到同样的目的吗?

drupal drupal-6 drupal-fapi

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