小编Nob*_*fer的帖子

c ++在switch语句中声明变量

switch在我的C++代码中有一个语句,并且想在该语句中声明并使用一个变量case.该变量仅在该特定范围内使用case.

switch(mode)
{
case abc:
    ...
    struct commonData;
    commonData = manager->getDataByIndex(this->Data.particularData);
    int someInt = 1;
    ...
    break;
case xyz:
    ...
    commonData = Manager->getDataByIndex(this->Data.particularData);
    break;
default:
    ...
    break;
}
Run Code Online (Sandbox Code Playgroud)

我试过简单地声明,初始化和使用变量(int someInt)就在里面case,但这给了我一些编译错误......在SO上遇到这个问题:为什么变量不能在switch语句中声明?,我尝试做了答案的建议,并添加{}case问题中,所以我switch现在看起来像这样:

switch(mode)
{
case abc:
    {
    ...
    struct commonData;
    commonData = manager->getDataByIndex(this->Data.particularData);
    int someInt = 1;
    ...
    break;
    }
case xyz:
    ...
    commonData = manager->getDataByIndex(this->Data.particularData);
    break;
default:
    ...
    break;
}
Run Code Online (Sandbox Code Playgroud)

但我现在收到编译错误,说明:在一个变量(commonData)的"未声明的标识符",在该 …

c++ scope switch-statement variable-declaration

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

Ad-'at'和'range'是什么意思/做什么?

我正在调试一些软件,这些软件分为两部分 - 一部分用C++编写,另一部分用于Ada,我以前从未使用过.

在阅读一些Ada代码并查找包含粒子数据的变量时,我发现这些变量recordfor循环中使用,例如:

for myRecord use
    record
        eta    at    8    range    0 .. 31;
        ttg    at    16   range    0 .. 63;
    end record;
Run Code Online (Sandbox Code Playgroud)

atrange是在IDE(GPS- GNAT编程工作室),我以为粗体意味着它们的关键字/在Ada的特定的含义......有人可以给我解释一下这个结构是什么/呢?这里的数字是否与分配给变量/内存位置的内存量有关?

record ada data-structures

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

使用量角器进行 AngularJS 测试 - 使用 browser.wait()

我正在使用 Protractor 为 AngularJS 应用程序开发自动化测试套件。

在开发我的测试脚本时,我一直在使用,browser.pause()因此在我执行脚本时,我必须手动告诉它继续执行测试的每个步骤。我现在很高兴我的测试正确执行,并希望删除对 的调用browser.pause(),这样我就可以让脚本自行运行完成。

但是,我知道,如果browser.pause()不添加任何内容以允许我的测试在执行下一步之前暂停/等待浏览器加载(目前,我需要花费的时间来告诉browser.pause()运行调用后继续的脚本足以让浏览器加载下一步测试所需的元素)。

我正在尝试使用browser.wait()此方法,将每个测试的最后一行作为参数传递给browser.wait(),以及超时值(即 10 秒)。例如:

it('should log the user in to the application', function() {
    browser.wait(loginAsUser(username, password), 10000);
});
Run Code Online (Sandbox Code Playgroud)

该测试最初只是:

browser.pause();

it('should log the user in to the application', function() {
    loginAsUser(username, password);
});
Run Code Online (Sandbox Code Playgroud)

即对browser.pause()测试用例外部的调用将导致浏览器在每个测试的每个步骤之间暂停。

loginAsUser()函数定义为:

function loginAsUser(username, password) {
    usernameInputField.sendKeys(username);
    passwordInputField.sendKeys(password);
    loginBtn.click();
}
Run Code Online (Sandbox Code Playgroud)

当我当前运行我的测试脚本时,browser.wait()与登录测试一样添加到每个测试的最后一个可执行行后,我在第一个测试(上面的日志)中遇到以下失败,其余测试都失败了,因为它们取决于那个通过:

失败:等待条件必须是类似承诺的对象、函数或条件对象

我不明白为什么我会收到这个错误,因为wait条件是一个函数……它被赋予了loginAsUser()我在上面定义的函数……?谁能向我解释我在这里做错了什么?

编辑

因此,似乎问题实际上出在我其余的测试中(即login首先运行测试,然后在它之后依次运行一些其他测试)。

使用我最初的登录测试,测试用例当前正确登录,但是下一个要运行的测试失败,给出错误: …

javascript automated-tests angularjs protractor

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

Java JTextArea 未在 GUI 中显示

我正在尝试为我正在编写的 Java 应用程序创建一个简单的 swing GUI,但是在将内容显示在 JPanel 上时遇到了一些麻烦,我想知道是否有人可以指出我在做什么错误的?

我的 Gui.java 类中有以下代码:

package openDIS;

import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Gui extends JFrame{

public Gui(){
    setTitle("DIS Filter");
    setSize(1000, 500);
    setLocation (10, 10);
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    initGui();
}

/*public quitButton(){
    initGui();
} */

private void initGui(){
    //JFrame frame = new JFrame();
    JPanel panel = new JPanel();

    this.getContentPane().add(panel);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setTitle("DIS Filter");
    this.setSize(1000, 500);

    panel.setLayout(null);
    /*Add a JTextArea to display the output DIS information */
    JTextArea displayOutput = new JTextArea();
    panel.add(displayOutput);

    //String data = EspduReceiver.espdu; …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jtextarea

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

C# - 在'封闭'本地范围内使用变量?

我尝试了一些新的功能添加到尤其是C#应用程序 - ,试图复制它的一些行为,但在Web浏览器,而不是应用程序,因为它是目前.

我试图Browser.cs从类中的方法内部调用已在类中定义的方法MainWindow.cs.

该方法定义Browser.cs如下:

public partial class Browser : Form{
    public Browser(){
        ...
    }
    public void Browser_Load(object sender, EventArgs e){
        webKitBrowser1.Navigate("https://google.com");
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试从MainWindow.cs以下方式调用它:

public partial class MainWindow : Window{
    ...
    public MainWindow(){
        ...
        Browser mBrowser = new Browser();
        Object sender = new Object();
        EventArgs e = new EventArgs();
        mBrowser.Browser_Load(sender, e);
        ...
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到一个编译错误,说:

无法在此范围内声明名为"e"的本地或参数,因为该名称用于封闭的本地范围以定义本地或参数

这是什么意思?我之前从未遇到过这个错误 - 我在同一范围内使用变量,因为它已被声明 - 它是什么意思'封闭本地范围'?是因为我e在括号内使用方法调用mBrowser.Browser_Load(sender, e)吗?

当然,由于对此方法的调用与我定义的范围相同e,因此它不应该是范围问题? …

c# wpf scope variable-declaration

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

C#WPF在XAML中添加KeyBinding事件

我正在使用由ChromiumWebBrowser提供的向我的C#应用​​程序的用户显示网站。CefSharp库。

我正在尝试添加功能,以允许用户使用键盘快捷键(即CTRL +/)“放大/缩小” CTRL -

我设法KeyboardListener使用“低级全局键盘挂钩/接收器”将其添加到嵌入式浏览器中,该网址位于:http : //www.dylansweb.com/2014/10/low-level-global-keyboard-hook-sink-in -c-net /

目前,当浏览器处于“焦点对准”状态并且用户按下键盘上的“ +”时,我的应用程序将在浏览器中“放大”。我使用以下方法完成此操作:

private void _listener_OnKeyPressed(object sender, KeyPressedArgs e)
{
    if(e.KeyPressed == Key.Add)
    {
        zoomInExecuted();
    }
}
Run Code Online (Sandbox Code Playgroud)

我真正想要的只是在用户按住“ CTRL”键然后按“ +”时才允许放大。

我在C#中编写了以下方法(此方法称为:

private void _listener_OnKeyPressed(object sender, KeyPressedArgs e)
{
    Debug.WriteLine("e: " + e.KeyPressed.ToString());

    if(e.KeyPressed == Key.LeftCtrl)
    {
        leftCtrlDown = true;
        Debug.WriteLine("LeftCtrl pressed, leftCtrlDown should be true: ", leftCtrlDown.ToString());
    }
    else
    {
        leftCtrlDown = false;
    } 

    if(e.KeyPressed == Key.RightCtrl)
    {
        rightCtrlDown …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml keyboard-shortcuts keypress

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

Django-如何在视图创建的表中添加"autonumber"列?

我有一个Django项目,其中一个views是根据存储在数据库中的信息显示多个表.的view定义如下:

def pipeline(request):
    ...
    tables = []
    def make_table(detailed_status, projects, status_view=False, first_table=False):
        ...
        table_context_map = {
            Project.ds2: {'fields': [['date added',1], ['site visit date',1], ['initial exc VAT',1]]},
            ...
            # Similar lines to populate the tables with data from the database
            ...
        }
        table_context = table_context_map[detailed_status]
        ...
        table_context['fields'] = [['project name',1], ['town',1], ['postcode',1], ['contact name',1]] + table_context['fields']
        table = render_to_string('.../....html', table_context)
    ...
    return render(request, 'abc.html', context)
Run Code Online (Sandbox Code Playgroud)

我想做的是在由此创建的每个表的列中view,并在该列中为表中的每一行插入"自动编号".每当view运行和加载网页时,将根据数据库查询动态填充表格,我只想在创建每个表格时对其中的项目列表进行编号.

我该怎么做?我知道Python Django,所以任何帮助或指导将非常感激.

编辑

当前在网页中显示这些表的HTML部分如下所示:

<div class="content">
    {% …
Run Code Online (Sandbox Code Playgroud)

python django autonumber

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

c ++ double initialization-默认值?

我正在调试一些c ++代码,并且遇到了一个似乎永远不会被赋予价值的双重代码.它是用线声明的

double x;
Run Code Online (Sandbox Code Playgroud)

之前没有使用过c或c ++,我不确定双打是否有默认的值?即,鉴于上面的声明,如果x从未特别赋予值,它会自动为0,还是为空?

X用于代码中其他地方的计算,计算结果意味着显示给用户 - 此时它不是......计算结果如下:

y*asin(sin(x/y)*sin(a*b));
Run Code Online (Sandbox Code Playgroud)

我假设如果x默认为0,这会导致编译/运行时错误?如果x默认为0,那么计算肯定会返回0,并且会向用户显示0吗?

c++

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

c ++使用指针访问对象的成员

我有变量mode,我用以下行声明:

StatusRecord mode;
Run Code Online (Sandbox Code Playgroud)

StatusRecord是一个struct包含不同类型的几个变量的.

我现在想要创建一个指针mode,并使用一个函数填充其属性/字段,用一些数据填充该指针.我试过这样做如下:

StatusRecord mode;
StatusRecord *modePtr = &mode;
DataStore->getModeData(*modePtr);
Run Code Online (Sandbox Code Playgroud)

在这里,我声明struct变量,创建一个指向它的指针,并使用该getModeData()函数填充该指针.但是,我现在想要使用struct ptr我刚刚填充在条件语句中的属性:

if(*modePtr->eraseSelect ==2){
    ...
}
Run Code Online (Sandbox Code Playgroud)

但我在这一行上遇到编译错误:

错误:'*'的操作数必须是指针

这是否意味着eraseSelect属性应该是指针以及'modePtr`?我该如何解决这个错误?

c++ struct pointers

0
推荐指数
3
解决办法
1485
查看次数

Git用另一个分支替换master分支-git merge -s我们的吗?

对于Git来说,我是一个新手,自从开始使用新客户端以来,它才使用了最近几个月(这就是在我开始为他们工作之前,他们一直在使用该软件来管理软件的版本控制)。

我最近将一个development分支与我的本地master分支合并,并推master送到服务器。在将站点推送到服务器之前,我已经在本地开发机器上测试了该站点(使用Django / Python编写的站点),并且一切似乎都正常工作(包括已在development分支上实现的错误修复)。

但是,在测试推送到服务器后所做的更改之后,我发现某些内容破坏了站点的一部分。因此,我commit在服务器上签出了一个旧版本,现在的实时版本正在使用旧版本commit,这意味着它处于“已分离头”状态,但是可以正常工作。

因此,我的本地master分支当前是我已推送到服务器的错误修复版本(该版本在本地运行,但未在服务器上运行),但是由于我需要处理网站的其他方面,因此我想恢复到master在将development分支与bug修复合并到之前所做的备份master,以便从代码的“最近工作”状态进行开发。

我在计算机上拥有的分支机构是:

master(已development合并到其中,从而破坏了其他功能)

masterBackup(即master合并之前的分支development

development (这是修复了原始错误的分支,但现在其他问题已被打破)

masterBackup从合并developmentmaster破产以来,实际上是我目前正在工作的“主”分支master。我想再次创建masterBackup我的“主”分支,并且master可以丢弃/删除其当前状态。我仍然有development分支机构,因此可以调查为什么/如何破坏了站点并在master重新合并之前将其修复。

我在如何从另一个分支完全替换git中的master分支时发现了问题接受的答案表明我应该执行以下步骤:

git checkout masterBackup
git merge -s ours master
git checkout master
git merge masterBackup
Run Code Online (Sandbox Code Playgroud)

但是我找不到任何明确的命令来解释该命令的git merge -s ours功能...这肯定是如何使我 …

git version-control merge

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

C++比较double和double的值*

我有一个类型的变量double *,我用该行初始化为0:

double* angle = 0;
Run Code Online (Sandbox Code Playgroud)

然后我有一个函数,它接受两个类型的变量const CCoordinate,以及三个类型的变量double *作为参数.此函数获取const CCoordinate变量保存的值,并返回double *由函数内执行的计算返回的三个类型变量.

编辑

上述功能的声明是:

int InverseVincenty(const CCoordinate aStartPosition,
const CCoordinate aEndPosition,
double* aDistance,
double* aAngle12,
double* aAngle21);
Run Code Online (Sandbox Code Playgroud)

结束编辑

我现在正在尝试编写自己的函数,它将使用此函数计算三个double *变量,然后对double *变量执行自己的计算.但是,似乎我试图将值doubles与值进行比较double *,编译器给了我一些错误,说我不能这样做......

我想要做的计算类型包括:

if((a <= b + 5) || (a >= b -5)){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

其中a是a double,b是a double*.

编译器告诉我它不能从'double*'转换为'double',但我不是要尝试转换任何东西,只是试图比较两个变量所持有的值......这有可能吗?

我原以为,由于指针指向内存中的一个地址,该地址将保存一个与另一个变量等效数据类型的值(即double和指向double的指针),这是可能的吗?

如果没有,任何人都可以提出另一种方法来比较他们的价值观吗?

c++ double pointers

-1
推荐指数
1
解决办法
559
查看次数