Tag: 初始化

如何在Java中初始化一个对象数组

我想初始化一个BlackJack游戏的Player对象数组。 我已经阅读了很多关于初始化原始对象的许多方法,比如一个int数组或者一个string数组,但是我不能把这个概念带到我想要做的事情(见下文)。 我想返回一个初始化的Player对象的数组。 玩家对象的数量是一个整数,我提示用户。 我正在考虑构造函数可以接受一个整数值,并相应地命名播放器,同时初始化Player对象的一些成员variables。 我觉得我很接近,但还是很困惑。 static class Player { private String Name; private int handValue; private boolean BlackJack; private TheCard[] Hand; public Player(int i) { if (i == 0) { this.Name = "Dealer"; } else { this.Name = "Player_" + String.valueOf(i); } this.handValue = 0; this.BlackJack = false; this.Hand = new TheCard[2]; } } […]

为什么我们不能初始化结构内的成员?

为什么我们不能初始化结构内的成员? 例: struct s { int i = 10; };

如果函数没有返回任何值,并且返回types有效,编译器是否可以扔垃圾?

如果一个函数的返回types不是void ,并且函数没有返回任何东西,那么我猜编译器会返回一个垃圾值(可能被看作未初始化的值)。 它发生在编译时,为什么不能抛出一个错误? 例如, int func1() { return; // error } int func2() { // does not return anything } 第二个func2应该会抛出一个错误,但是不会。 是有原因的吗? 我的想法是,它可以被看作是一个未初始化的值,所以如果我们需要在第二种情况下抛出错误,那么我们需要抛出错误,如果一个值未初始化,说 int i; // error int i = 6; // okay 任何想法,或者这是一个重复的问题? 我感谢您的帮助。

新类的含义(…){{…}}初始化成语

{{ … }}块在下面的代码中意味着什么? class X { private Y var1; private X() { Z context = new Z(new SystemThreadPool()) {{ var1 = new Y(); }}; } }

我应该在ARC的init方法中引用self.property吗?

一个简单的问题。 如果我有一个财产和一个同名的伊娃: 在.h文件中: (Reminder*)reminder; @property(nonatomic,strong)(Reminder*)reminder; 在.m文件中,如果我正在使用ARC,应该在init方法中使用ivar还是属性? – (id)initWithReminder:(Reminder*)reminder_ { self = [super init]; if (self) { reminder = reminder_; } return self; } 或者,我应该使用该属性来获得像这样的自动引用计数的好处: – (id)initWithReminder:(Reminder*)reminder_ { self = [super init]; if (self) { self.reminder = reminder_; } return self; } 我不确定在对象初始化的哪一点,属性可以用点符号来访问。

如何在bean初始化完成后调用方法?

我有一个用例,我只需要在Bean上调用一个(非静态)方法,一次在ApplicationContext加载。 没关系,如果我使用MethodInvokingFactoryBean? 或者我们有一个更好的解决scheme? 作为一个方面说明,我使用ConfigContextLoaderListener在Web应用程序中加载应用程序上下文。 而且,如果bean“A”被实例化,只需调用methodA()一次。 这怎么可以做得很好?

C ++静态成员初始化(模板乐趣里面)

对于静态成员初始化,我使用嵌套帮助器结构,这对非模板类很好。 但是,如果封闭类由模板参数化,则嵌套的初始化类不会被实例化,如果辅助对象在主代码中未被访问。 为了说明,一个简单的例子(在我的情况下,我需要初始化一个向量)。 #include <string> #include <iostream> struct A { struct InitHelper { InitHelper() { A::mA = "Hello, I'm A."; } }; static std::string mA; static InitHelper mInit; static const std::string& getA(){ return mA; } }; std::string A::mA; A::InitHelper A::mInit; template<class T> struct B { struct InitHelper { InitHelper() { B<T>::mB = "Hello, I'm B."; […]

Python – 创build一个具有初始容量的列表

这样的代码经常发生: l = [] while foo: #baz l.append(bar) #qux 如果你要将数以千计的元素添加到你的列表中,这真的很慢,因为列表必须不断resize以适应新的元素。 在Java中,您可以创build具有初始容量的ArrayList。 如果你有一些想法,你的名单将是多大,这将是更有效的。 我明白,这样的代码通常可以重新考虑到列表理解中。 如果for / while循环非常复杂,那么这是不可行的。 Python程序员有什么等价物吗?

这个自我初始化是否有效?

我有这个问题,我早些时候想过,但认为这不是微不足道的回答 int x = x + 1; int main() { return x; } 我的问题是,如果程序的行为是有效的,是定义的还是未定义的。 如果定义了,主要是已知的x的值?

通过空matrix乘法初始化数组更快的方法? (Matlab的)

我偶然发现了奇怪的方式(在我看来)Matlab正在处理空matrix 。 例如,如果两个空matrix相乘,结果是: zeros(3,0)*zeros(0,3) ans = 0 0 0 0 0 0 0 0 0 现在,这已经让我吃惊了,但是,一个快速的search让我看到了上面的链接,并且解释了为什么会发生这种有些扭曲的逻辑。 但是 ,没有任何东西准备好我的观察。 我问自己,这种types的乘法与仅使用zeros(n)函数有多高效,比如初始化的目的呢? 我用timeit来回答这个问题: f=@() zeros(1000) timeit(f) ans = 0.0033 VS: g=@() zeros(1000,0)*zeros(0,1000) timeit(g) ans = 9.2048e-06 两者的结果都是1000×1000的二级零matrix,但是空matrix乘法一个是〜350倍! (类似的结果发生使用tic和toc和一个循环) 这怎么可能? 是timeit或tic,toc虚张声势还是我find了一个更快的方法来初始化matrix? (这是用matlab 2012a完成的,在win7-64机器上,intel-i5 650 3.2Ghz …) 编辑: 在阅读您的反馈之后,我更仔细地研究了这个特性,并在两台不同的计算机(相同的matlab ver 2012a)上testing了一个代码,用于检查运行时间与matrixn的大小。 这是我得到的: 与以前一样生成这个使用的timeit的代码,但是一个循环与tic和toc看起来是一样的。 所以,对于小尺寸, zeros(n)是可比较的。 然而,在n=400左右,空matrix乘法的性能有所提高。 我用来生成该图的代码是: n=unique(round(logspace(0,4,200))); for k=1:length(n) […]