Tag: 声明

声明无var关键字的variables

在w3schools有写: 如果你声明一个variables,而不使用“var”,variables总是变成GLOBAL。 在函数内部声明全局variables是否有用? 我可以想象在一些事件处理程序中声明一些全局variables,但是它有什么好处呢? 更好的使用内存?

WPF没有XAML

在架构上,我认为WPF是相当惊人的。 一般来说,我是底层渲染/animation内部工作的忠实粉丝。 模板和样式的灵活性设置是相当令人印象深刻的。 但我讨厌XAML–我觉得这使许多事情变得复杂。 我已经用它在大型和小型应用程序,我发现自己多次试图找出如何在XAML中做的一些基本原则是基本的,但语法是古怪的。 不仅如此,我还多次想知道parsing/绑定的某些部分有多沉重。 (我知道它是编译的,但是我不确定在运行时仍然有多less评估) XAML只是构build和加载可视化树的一种方式。 是否有任何框架可以简化以非XML,基于代码的方式构build可视化树? 具体而言,我对框架感兴趣,可以在保留MVVM方法的同时缓解以下任何问题: 强有力的绑定。 指定ViewModel必须符合特定的types。 我假设BaseBinding在底层使用了reflection,我对这个速度有些怀疑,更不用说破坏性的绑定令人讨厌了。 更快的绑定,非INotifyPropertyChanged绑定。 看起来像某种BindableProperty<T>可以被创build,绑定可以直接监听,而不是接收所有的ViewModel属性更改。 直接callback与string参数的使用似乎也是有利的。 一种不同的资源pipe理方法; 再次,强types的某种字典可能是相当不错的。 我几乎喜欢将样式看作lambda或什么来捕获强types的方面。 总而言之,任何非基于XAML的框架都适合MVVM,而且是强types的?

Test :: Unit Rails – 如何声明一个数字大于另一个数字?

我正在用Test :: Unit编写我的第一个unit testing,而且我已经到了需要比较两个数字的地步。 令我惊讶的是,我发现以下都不是: assert_greater_than assert_lesser_than assert_greater_or_equal_than assert_lesser_or_equal_than 这是正常的吗? 我应该怎么做呢? 谢谢

我什么时候定义objective-c方法?

我正在学习Objective-C,并有一个C / C ++的背景。 在面向对象的C ++中,在定义(实现)它之前,你总是需要声明你的方法,即使它是在父类中声明的。 在程序风格的C,IIRC中,只要定义一个函数,只要从文件中稍后出现的同一个编译单元(即同一个文件)中的其他东西中调用,就可以避开(好吧,提供你不用“extern”在其他地方声明)。 现在,在Objective-C中,看起来只需要在头文件中声明select器,如果它们将被外部使用,并且可以在.m文件中构造select器就好,然后调用它们.m文件。 此外,似乎委托方法或inheritance方法从不(重新)定义。 我在正确的轨道上? 什么时候需要在Objective-C中定义一个select器?

Rails的ActiveSupport:如何断言提出了一个错误?

我想testing我的模型之一,引发特定错误的function。 该函数看起来像这样: def merge(release_to_delete) raise "Can't merge a release with itself!" if( self.id == release_to_delete.id ) raise "Can only merge releases by the same artist" if( self.artist != release_to_delete.artist ) #actual merge code here end 现在我想做一个断言,当我调用这个函数的一个参数,导致这些exception,实际上是抛出exception。 我正在查看ActiveSupport文档,但我没有find任何有希望的。 有任何想法吗?

什么是声明和声明,它们的types是如何被标准解释的?

例如float (*(*(&e)[10])())[5]声明一个types为“指向10的指针的数组的指针”的variables返回指向数组的指针5 float “? 受@DanNissenbaum的讨论启发

Eclipse在Java项目中打开声明

在Eclipse SVN项目中,我有一个问题; 当我试图打开一个类的声明时,我得到了这个错误: Problems opening an editor Reason : projectname does not exist. 重构也不起作用。 我已经在网上search,并试图find所有解决scheme,但没有任何帮助 我已经下载了不同的Eclipse和Java版本,并切换到一个干净的工作区,但我仍然有问题。 我该如何解决我的问题,或者我可以尝试哪种解决scheme?

为什么要将属性添加到已经实例化的对象中?

我正在学习python,尽pipe我认为我理解了Python的全部概念和概念,但是今天我偶然发现了一些我并没有完全理解的代码: 说我有一个class级,应该定义圈子,但缺乏一个身体: class Circle(): pass 由于我没有定义任何属性,我怎么能这样做: my_circle = Circle() my_circle.radius = 12 奇怪的部分是Python接受上述语句。 我不明白为什么Python不会提出一个undefined name error 。 我明白,通过dynamictypes,我只是将variables绑定到对象,只要我想,但不应该在Circle类中存在一个属性radius允许我这样做? 编辑 :在你的答案很多精彩的信息! 谢谢大家的所有这些梦幻般的答案! 很可惜,我只能把其中一个标记为答案。

在Release版本中使用assert()时避免未使用的variables警告

有时候,局部variables只用于在assert()中检查它的目的, int Result = Func(); assert( Result == 1 ); 在Release版本中编译代码时,通常会禁用assert(),所以这段代码可能会产生一个关于Result被设置但不会被读取的警告。 一个可能的解决方法是 – int Result = Func(); if ( Result == 1 ) { assert( 0 ); } 但它需要太多的打字,不容易在眼睛上,并导致条件总是检查(是的,编译器可能会优化检查,但仍然)。 我正在寻找一种替代方式来expression这个assert()的方式,不会导致警告,但仍然很容易使用,并避免改变assert()的语义。 (在这个区域的代码中禁止使用#pragma的警告不是一个选项,并降低警告级别使其消失是不是一个选项…)。

为什么不让C#使用var声明多个variables?

鉴于以下情况: // not a problem int i = 2, j = 3; 所以这令我感到惊讶: // compiler error: Implicitly-typed local variables cannot have multiple declarators var i = 2, j = 3; 不编译。 也许有什么我不明白这个(这就是为什么我问这个)? 但为什么编译器不知道我的意思是: var i = 2; var j = 3; 这将编译。