问题列表 - 第32016页

"if"与"switch"

可能重复:
"else if"比"switch()case"快吗?

我最近遇到很多情况,我的条件非常简单,需要分支应用程序流程.完成我正在做的事情的"最简单"的方法只是一个简单的陈述if/ elseif声明:

if($value == "foo") {
    // ...
} elseif($value == "bar") {
    // ...
} elseif($value == "asdf" || $value == "qwerty") {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

......但我也在考虑这样的事情:

switch($value) {
    case "foo":
        // ...
        break;
    case "bar":
        // ...
        break;
    case "qwer":
    case "asdf":
        // ...
}
Run Code Online (Sandbox Code Playgroud)

这似乎有点不太可读,但也许它的性能更高?但是,当条件中有越来越多的"或"表达式时,似乎switch语句更具可读性和实用性:

switch($value) {
    case "foo":
        // ...
        break;
    case "bar":
    case "baz":
    case "sup":
        // ...
        break;
    case "abc":
    case "def":
    case "ghi":
        // ...
        break;
    case …
Run Code Online (Sandbox Code Playgroud)

php branch if-statement switch-statement

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

使用bind1st和mem_fun引用成员函数

我有一个C++类,我试图使用std :: bind1st将成员函数绑定到'this'参数.例如:

class MyClass
{
public:
   void Foo()
   {
       using namespace std;

       // this works fine
       this->Bar();

       // this also works fine
       mem_fun( &MyClass::Bar )( this );

       // this does not
       bind1st( mem_fun( &MyClass::Bar ), this )();

       // this is not a possibility for this program
       boost::bind( &MyClass::Bar, this )();
   };

   void Bar()
   {
   };
};
Run Code Online (Sandbox Code Playgroud)

当我添加最后一个'bind1st'行时,我得到以下编译器错误:

1>stl/_function.h(189) : error C2039: 'second_argument_type' : is not a member of 'stlp_std::mem_fun_t<_Ret,_Tp>'
1>        with
1>        [
1>            _Ret=void,
1>            _Tp=MyClass
1>        ] …
Run Code Online (Sandbox Code Playgroud)

c++ stl mem-fun

10
推荐指数
1
解决办法
8723
查看次数

错误获取资源编号的值时没有包标识符

两个活动都在同一个包中

第二个活动使用第二个布局文件

setContentView(R.layout.main2);
Run Code Online (Sandbox Code Playgroud)

Second_Activity中此行的错误.

EditText text1 = (EditText) findViewById(R.id.EditText03);
Run Code Online (Sandbox Code Playgroud)

这是Second_Activity的布局文件.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/LinearLayout01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/TextView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Answer Is : " >
        </TextView>

        <EditText
            android:id="@+id/EditText03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </EditText>
    </LinearLayout>

    <Button
        android:id="@+id/Button01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Calling an intent" >
    </Button>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

以下是LogCat窗口中的错误

08-01 19:32:20.340: WARN/ResourceType(8875): No package identifier when getting value for resource number 0x00000005
08-01 19:32:20.390: ERROR/AndroidRuntime(8875): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x5 
Run Code Online (Sandbox Code Playgroud)

mail.xml

<TextView 
    android:id="@+id/TextView01" 
    android:layout_width="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-resources

19
推荐指数
6
解决办法
5万
查看次数

为什么不可能创建一个实用的Perl到Python源代码转换器?

如果存在一个自动将Perl代码转换为Python代码的程序,那么这将是很好的,这使得生成的Python程序可以像原始代码一样可读和可维护,更不用说以相同的方式工作了.

最明显的解决方案是perl通过Python utils 调用:

#!/usr/bin/python
os.exec("tail -n -2 "+__file__+" | perl -")
...the rest of file is the original perl program...
Run Code Online (Sandbox Code Playgroud)

但是,结果代码几乎不是Python代码,它本质上是一个Perl代码.潜在的转换器应该将Perl结构和习语转换为易于阅读的Python代码,它应该保留变量和子程序名称(即结果不应该看起来模糊)并且不应该过多地破坏wrokflow.

这样的转换显然非常困难.转换的硬度取决于Perl特性和语法结构的数量,这些特征和语法结构没有易于阅读,未经过混淆的Python等价物.我相信大量的这样的特征使得这种自动转换实际上是不可能的 (理论上存在可能性).

那么,您能否将Perl惯用语和语法功能命名为无法在Python中表达为原始Perl代码中的简洁?

编辑:有些人将Python-to-Perl召集人联系起来,并在此基础上推断出,编写Perl-to-Python也应该很容易.不过,我敢肯定,转换到Python是在更大的需求; 仍然没有写这个转换器 - 而反过来已经!这让我对不可能为Python编写好的转换器更加坚定.

python perl

4
推荐指数
6
解决办法
1760
查看次数

如何在MATLAB中对列的平均值进行规范化?

我正在尝试采用矩阵并将每个单元格中的值标准化为该列的平均值.通过标准化,我的意思是从该列中的平均值中减去每个单元格中的值,即从Column1中的值中减去Column1的平均值...从ColumnN中的值减去ColumnN的平均值.我在Matlab中寻找脚本.谢谢!

matlab normalize

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

将返回List <employee>的方法绑定到gridview

我的N层应用程序中的方法返回List<Employee>.以下是该方法的示例代码:

public List<Employee> GetAllemployees()
{
    return DAL.GetEmployees();
} 
Run Code Online (Sandbox Code Playgroud)

我的aspx页面中有一个GridView.如何设置GridView的数据源,GetEmployees()以便所有员工都列在GridView中?

.net .net-3.5

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

大规模应用程序开发和MVP教程中的问题

我最近尝试遵循大规模应用程序开发和MVP教程.这个教程很棒,但我很难做一些事情.

如果您尝试将联系人添加到列表,则会创建联系人.如果您尝试添加其他联系人,则会转到您创建的最后一个联系人的编辑屏幕.添加第一个联系人后,无法再添加联系人.需要更改的内容,以便您可以添加多个联系人.

我试图让它发挥作用的变化:

每次按下添加按钮时创建一个新的editContactsView.这会打开一个空白的编辑屏幕,但新的联系人仍会覆盖之前的添加.

在确定新联系人的ID时,将contacts.size()更改为contacts.size()+ 1.

gwt

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

获取进程路径时访问被拒绝

我试图通过pid获取进程路径,但我得到Win32Exception(访问ID被拒绝).

代码如下所示:

string path = Process.GetProcessById(pid).MainModule.FileName
Run Code Online (Sandbox Code Playgroud)

我已经尝试将OpenProcess与GetModuleFileNameEx一起使用,但OpenProcess返回0.我甚至尝试根据C#启用SeDebugPrivilege - 如何启用SeDebugPrivilege但它没有帮助.

上面的代码适用于大多数进程,但抛出SynTPHelper.exe(Synaptics Pointing Device Helper)的错误.应用程序在与我的代码相同的用户名下运行.两者,我的应用程序和进程都以64位运行.

是否可以在以管理员身份运行我的应用程序的情况下检索路径?

编辑

任务管理器能够"打开文件位置",即使我没有以管理员身份运行它.

c# winapi process access-denied win32exception

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

gcc -O4优化标志

gcc(3.2.3)中-O4优化标志的含义是什么?与O3有什么区别?你什么时候使用一个与另一个?

手册页只提O,O0-3,Os,没有神秘的O4字.谢谢!

c++ linux compiler-construction gcc

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

excel:我如何在一个单元格内排序?

我有一个用逗号分隔的字符串,是否可以使用excel公式在单元格内的值内进行排序?

excel

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