问题列表 - 第16317页

Android和协议缓冲区

我正在编写一个Android应用程序,它既可以存储数据,也可以使用协议缓冲区与服务器通信.但是,使用LITE标志(在JAR库和生成的.java文件中)编译的协议缓冲区的库存实现具有~30 KB的开销,其中程序本身仅为~30 KB.换句话说,协议缓冲区使程序大小加倍.

网上搜索,我发现了一个参考Android的具体实施.不幸的是,它似乎没有文档,并且从标准.proto文件生成的代码与它不兼容.有人用过吗?如何从.proto文件生成此实现的代码?还有其他轻量级替代品吗?

serialization android protocol-buffers

7
推荐指数
2
解决办法
8477
查看次数

配置结构与setter

我最近遇到了使用配置对象而不是通常的setter方法进行配置的类.一个小例子:

class A {  
   int a, b;  
public:  
   A(const AConfiguration& conf) { a = conf.a; b = conf.b; }  
};  

struct AConfiguration { int a, b; };
Run Code Online (Sandbox Code Playgroud)

好处:

  • 您可以扩展您的对象,并轻松保证新值的合理默认值,而无需用户需要了解它.
  • 您可以检查配置的一致性(例如,您的类只允许某些值组合)
  • 通过省略setter来节省大量代码.
  • 您将获得一个默认构造函数,用于为Configuration结构指定默认构造函数并使用A(const AConfiguration& conf = AConfiguration()).

缺点:

  • 您需要在构建时知道配置,以后不能更改它.

我缺少更多的缺点吗?如果没有:为什么不经常使用?

c++

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

如何在Perl中找到正则表达式的所有匹配项?

我的表格中有文字:

Name=Value1
Name=Value2
Name=Value3
Run Code Online (Sandbox Code Playgroud)

使用Perl,我希望/Name=(.+?)/每次出现时都匹配并提取(.+?)并将其推送到数组上.我知道我可以$1用来获取我需要的文本,我可以=~用来执行正则表达式匹配,但我不知道如何获得所有匹配.

regex perl

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

if dbnull和value的语法

我需要做类似的事情:

if isdbnull(value) or value = something then
'do something
else
'do something else
end if
Run Code Online (Sandbox Code Playgroud)

当然我使用这种方法得到一个错误,所以我的问题是我如何重写它以避免"运算符没有为dbnull和某些东西定义"错误?

vb.net

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

C++中的接口继承

我有以下类结构:

class InterfaceA
{ 
   virtual void methodA =0;
}

class ClassA : public InterfaceA
{
   void methodA();
}

class InterfaceB : public InterfaceA
{
   virtual void methodB =0;
}

class ClassAB : public ClassA, public InterfaceB
{ 
   void methodB(); 
}
Run Code Online (Sandbox Code Playgroud)

现在,以下代码无法编译:

int main()
{
    InterfaceB* test = new ClassAB();
    test->methodA();
}
Run Code Online (Sandbox Code Playgroud)

编译器说该方法methodA()是虚拟的而不是实现的.我认为它是在ClassA(实现InterfaceA)中实现的.有谁知道我的错在哪里?

c++ inheritance interface

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

在外部js文件中调用js函数

我正在尝试使用警报调用一个简单的函数,但是当我尝试从我的html页面调用函数(包含在外部js文件中)时它不会工作.

我有一个导入,电话很简单.有什么建议?

    <head>
<script src="/js/jsFunctions.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我打电话

<a href="javascript:displayAlertText('someText');">
Run Code Online (Sandbox Code Playgroud)

在js里面我有一些jquery后跟一个函数

function displayAlertText(someText)
    {
        alert('alert' + someText);
    }
Run Code Online (Sandbox Code Playgroud)

javascript

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

USB和PCI之间的关系

我对linux设备驱动程序书中的以下语句感到困惑. http://www.linuxdriver.co.il/ldd3/

13.2.USB和Sysfs为了帮助理解这个长设备路径的含义,我们描述了内核如何标记USB设备.第一个USB设备是根集线器.这是USB控制器,通常包含在PCI设备中.控制器如此命名,因为它控制连接到它的整个USB总线.控制器是PCI总线和USB总线之间的桥梁,也是该总线上的第一个USB设备.

特别声明"控制器是PCI总线和USB总线之间的桥梁"

是这样吗?我的印象是PCI和USB都是不同的总线.请澄清.

hardware linux-kernel

7
推荐指数
2
解决办法
6368
查看次数

Response.Redirect HTTP状态代码

为什么ASP/ASP.NET Response.Redirect使用HTTP-302状态代码("暂时移动"),即使在大多数情况下HTTP-301状态代码("永久移动")更合适?

c# asp.net redirect http asp-classic

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

如何编辑我的Excel下拉列表?

如何编辑我的Excel下拉列表?

我转到数据 - >验证 - >设置,然后我发现值为= Attribute_Brands.

编辑此内容我需要做什么?

excel excel-2003

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

python函数因没有明显原因而放慢速度

我有一个python函数定义如下,我用它从list1中删除已经在list2中的项目.我在Windows XP上使用python 2.6.2

def compareLists(list1, list2):
    curIndex = 0
    while curIndex < len(list1):
        if list1[curIndex] in list2:
            list1.pop(curIndex)
        else:
            curIndex += 1
Run Code Online (Sandbox Code Playgroud)

这里,list1和list2是列表列表

list1 = [ ['a', 11221, '2232'], ['b', 1321, '22342'] .. ]

# list2 has a similar format.
Run Code Online (Sandbox Code Playgroud)

我尝试了这个函数,list1有38,000个元素,list2有150,000个元素.如果我输入print语句来打印当前迭代,我发现每次迭代时函数都会变慢.首先,它在一秒钟内处理大约1000个或更多的物品,然后在一段时间后它减少到大约20-50秒.为什么会发生这种情况?

编辑:对于我的数据,curIndex保持为0或非常接近0,因此list1上的弹出操作几乎总是在第一项上.

如果可能的话,有人还可以建议一种更好的方式以不同的方式做同样的事情吗?

python

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