标签: variable-declaration

java中各种形式的声明之间的区别

我是Java中的菜鸟,是在python之后学习Java的人.无论如何,我很难搞清楚这一点.假设我有班级

class Bicycle{
      ....
 }
Run Code Online (Sandbox Code Playgroud)

 public class Bicycle{
    ....}
Run Code Online (Sandbox Code Playgroud)

有什么不同.那怎么样?

  public static class Bicycle{
              // if this can be a valid class def in first place
   }
Run Code Online (Sandbox Code Playgroud)

然后,在此之后..让我们谈谈变量.

    class Bicycle{
     int Gear or public int Gear // whats the difference
    }
Run Code Online (Sandbox Code Playgroud)

什么时候使用哪一个?

java variable-declaration

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

类中的Java风格变量声明

我试图了解Python OOP中的最佳实践.

我非常熟悉Java风格的工作流程:

  1. 属性声明
  2. 属性实例化

我喜欢它的是它在我看来提高了可读性:通过简短地查看属性,你就可以确切地知道你将在课堂上工作.

我想在Python中实现相同的结果,虽然我知道在Python中没有"变量声明"这样的东西,但也许某种设计模式可以做同样的事情.

到目前为止,我的中间解决方案是在__init__方法内部"声明" ,其中:

def __init__(self):
    self.attribute1 = None
    self.attribute2 = None 
Run Code Online (Sandbox Code Playgroud)

并在后续方法中稍后实例化这些元素.但我发现它相当丑陋,我会很高兴听到一个更优雅的模式.

python coding-style variable-declaration

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

声明中间计算和性能的变量

抱歉,这是个愚蠢的问题,但我不得不问这个。我有一个运行数十亿次计算的程序,我正在努力让它运行得更快。在我的程序中,我声明了很多用于中间计算的变量。例如,在伪代码中:

public bool FunctionThatGetsCalledInMain(manyparameters)
{
    for (int i = 0; i < 10000000; i++)
    {
        int x = bigFunctionThatReturnsAnInt(i,manyparameters)
        double y = bigFunctionThatReturnsADouble(i,manyparameters)
        string z = bigFunctionThatReturnsAString(i,manyparameters)

        bool b = someFunctionOfXYZ(x,y,z)
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以通过执行以下操作来提高性能:

public bool FunctionThatGetsCalledInMain(manyparameters)
{
    for (int i = 0; i < 10000000; i++)
    {
        bool b = someFunctionOfXYZ(bigFunctionThatReturnsAnInt(i,manyparameters),bigFunctionThatReturnsADouble(i,manyparameters),bigFunctionThatReturnsAString(i,manyparameters))
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这看起来很可怕,我的直觉告诉我这并不重要,但我只是想看看其他人是否同意。

c# performance-testing variable-declaration

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

在C中声明和分配带有文件范围的变量

假设我声明了以下变量:

int num;
num = 0;

int main(void)
{
        /* ... */
        exit(EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)

编译器会抱怨num未声明,并且默认输入int.当我一步到位时,这不会发生:

int num = 0;
Run Code Online (Sandbox Code Playgroud)

或者如果我将作业转移到main():

int main(void)
{
        num = 0;
        /* ... */
        exit(EXIT_SUCCESS);
}    
Run Code Online (Sandbox Code Playgroud)

我曾经读过这种行为的解释,但我再也找不到了.有人可以再次更新我.

我正在编译

gcc -std=c11 -O2 -g -pedantic -Wall -c -fmessage-length=0 -v
Run Code Online (Sandbox Code Playgroud)

c initialization variable-declaration

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

我应该在main函数内部或外部声明变量吗?

在C++中,建议在主程序内部或其他地方之前声明全局变量?我的意思是,有什么区别

#include <iostream>

int variable;

int main()
{    //my program
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

#include <iostream>

int main()
{
     int variable;
     //my program
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

在哪种情况下我应该使用哪一个?

c++ program-entry-point variable-declaration

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

C 中短变量的值

我有一个带有简短变量声明的简单程序:

    short int v=0XFFFD;  
    printf("v = %d\n",v);  
    printf("v = %o\n",v);  
    printf("v = %X\n",v);
Run Code Online (Sandbox Code Playgroud)

结果是:

v = -3 ; v = 37777777775 ; v = FFFFFFFD
Run Code Online (Sandbox Code Playgroud)

我不明白如何计算这些值。我知道一个短变量可以保存 -32768 和 32767 之间的值,而值 0XFFFD 会导致溢出,但我不知道如何计算确切值,在这种情况下为 -3。

另外,如果我的声明是 v=0XFFFD 为什么输出 v=%X 是 FFFFFFFD?

c variables integer-overflow short variable-declaration

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

Fortran的最佳申报单?

我实际上有一个嵌套的问题:

  1. 变量声明的顺序在Fortran中是否重要?
  2. 如果是,声明变量的最佳顺序是什么?

例如,这个程序是:

PROGRAM order1
IMPLICIT NONE
DOUBLE PRECISION,DIMENSION(:,:),ALLOCATABLE:: array_double_2D
DOUBLE PRECISION,DIMENSION(:),ALLOCATABLE:: array_double_1D
INTEGER,DIMENSION(:),ALLOCATABLE:: array_int_1D
INTEGER :: int1,int2
LOGICAL :: boolean1,boolean2
... instructions ...
Run Code Online (Sandbox Code Playgroud)

比这更好:

PROGRAM order2
IMPLICIT NONE
LOGICAL :: boolean1,boolean2
INTEGER :: int1,int2
INTEGER,DIMENSION(:),ALLOCATABLE:: array_int_1D
DOUBLE PRECISION,DIMENSION(:),ALLOCATABLE:: array_double_1D
DOUBLE PRECISION,DIMENSION(:,:),ALLOCATABLE:: array_double_2D
... instructions ...
Run Code Online (Sandbox Code Playgroud)

(通过"更好",我的意思是有效的内存管理和更快)

谢谢你的回答!

fortran variable-declaration

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

嵌套循环中的C++变量重新声明

下面是一个包含3个嵌套循环的代码.变量curs和tempv在最外层for循环的每次迭代中被重新声明.这应该给我错误,但我能够成功运行它没有错误的gcc 4.8.4.

for(int i = 0; i<lend; i++)
{
    string curs = vstring[digits[i]-'0'];
    vector<string> tempv;
    for(int j = 0; j<v.size(); j++)
    {
        for(int k = 0; k<curs.size(); k++)
        {
            tempv.push_back(v[j] + curs[k]);
        }
    }
    v = tempv;
}
Run Code Online (Sandbox Code Playgroud)

在for-loop中重新声明变量是否可以?我理解在C++中,变量不能在同一范围内重新声明.

c++ gcc syntax-error variable-declaration

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

为什么声明一个整数Static会导致我的代码出错?

我正在使用制作一个简单的高分系统代码 - Codecall,但我在使用它时收到错误.导致问题的一行是在HighScoreManager()课堂内.

这是错误的代码:

public String getHighscoreString() {
    String highscoreString = "";
    Static int max = 10; // this line gives an error

    ArrayList<Score> scores;
    scores = getScores();

    int i = 0;
    int x = scores.size();
    if (x > max) {
        x = max;
    }
    while (i < x) {
        highscoreString += (i + 1) + ".\t" + scores.get(i).getNaam() + "\t\t" + scores.get(i).getScore() + "\n";
        i++;
    }
    return highscoreString;
}
Run Code Online (Sandbox Code Playgroud)

线路Static int max = 10; …

java static variable-declaration

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

声明变量,其类型具有删除的默认构造函数,没有值

我想在多个 if-else 分支中初始化一个变量,稍后使用它,基本上是这样的:

Foo foo;

if (someCondition) {
    std::string someString = getTheString();
    // do some stuff
    foo = Foo(someString);
} else {
    int someInt = getTheInt();
    //do some other stuff maybe
    foo = Foo(someInt);
}

// use foo here
Run Code Online (Sandbox Code Playgroud)

不幸的是,在这个例子中,类型Foo有一个删除的默认构造函数,所以上面的代码不能编译。有没有办法以这种方式初始化这样的变量?

编辑:

正如您在我的示例中看到的那样,我使用了不同的构造函数,并且还在 if/else 块中执行了其他操作,因此不幸的是,三元运算符不起作用。
如果没有办法,没有foo指针,我显然可以采取不同的方法,但我很好奇,如果我的方法以某种方式起作用。

c++ default-constructor variable-declaration

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

花括号内的变量声明

为什么以下代码会产生错误?我不明白为什么花括号会有所作为.

#include<stdio.h>

int main(void)
{
    {
        int a=3;
    }

    {
        printf("%d", a); 
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c curly-braces variable-declaration printf-debugging

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

声明没有变量名c ++的实例

由静态数据字段引起的消费者文件中询问C++ Error链接之后,我为StateConservator的一个实例尝试了两种不同的声明:

StateConservator cs(*pContainer, pDoc->GetConfiguration());
Run Code Online (Sandbox Code Playgroud)

StateConservator(*pContainer, pDoc->GetConfiguration());
Run Code Online (Sandbox Code Playgroud)

第一个做了我想要的,它只在范围结束后才传递析构函数.第二个在声明本身的行中传递析构函数.

编译器是否正常运行?如果是正确的行为,在该行中声明匿名变量的方法是什么?

c++ constructor anonymous variable-declaration

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

如何解决"使用未分配的局部变量"错误

出于某种原因,我的程序给了我一个错误,告诉我"使用未分配的局部变量'路径'",这真是太该死了,尝试重启视觉工作室(2017社区)几次并无济于事,试图重建解决方案..没有什么是出于某种原因......

在此输入图像描述

using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace InterfacedStorage
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            OpenFile();
        }

        public void OpenFile()
        {
            OpenFileDialog openFile = new OpenFileDialog();
            string path; // Declared path
            if (openFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                path = openFile.FileName; // Input path from a file
            }


            Excel excel = new Excel(path, 1); // Path is not declared...

            MessageBox.Show(excel.ReadCell(0, 0));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# variable-declaration

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