Questions tagged «language-features»

语言功能是编程语言的一个独特方面,例如绑定规则,词法设计或类型系统的各个方面。

25
为什么C#不允许静态方法实现接口?
为什么用这种方式设计C#? 据我了解,接口仅描述行为,并且其目的是为实现某些行为的接口描述类的合同义务。 如果类希望以共享方法实现这种行为,为什么不呢? 这是我想到的一个例子: // These items will be displayed in a list on the screen. public interface IListItem { string ScreenName(); ... } public class Animal: IListItem { // All animals will be called "Animal". public static string ScreenName() { return "Animal"; } .... } public class Person: IListItem …

21
“ static”关键字在课程中做什么?
具体来说,我正在尝试以下代码: package hello; public class Hello { Clock clock = new Clock(); public static void main(String args[]) { clock.sayTime(); } } 但是它给了错误 无法在静态方法main中访问非静态字段 所以我将声明更改为clock: static Clock clock = new Clock(); 而且有效。将关键字放在声明之前是什么意思?就可以对对象执行的操作而言,它将确切地执行和/或限制什么?


10
python“ with”语句的目的是什么?
我with今天是第一次遇到Python 语句。我已经使用Python几个月了,甚至不知道它的存在!考虑到它的地位有些晦涩,我认为值得一问: Python with语句旨在用于什么? 你用它来做什么? 我需要了解任何陷阱,还是与其使用相关的常见反模式?有什么try..finally比这更好用的情况with吗? 为什么没有更广泛地使用它? 哪些标准库类与之兼容?


17
等效于JavaScript Hashmap
正如在此答案的更新3中明确指出的那样,该表示法: var hash = {}; hash[X] 实际上不哈希对象X;它实际上只是转换X为字符串(通过.toString()它是对象还是其他各种原始类型的内置转换),然后在“ hash”中查找该字符串,而不对其进行哈希处理。也不会检查对象是否相等-如果两个不同的对象具有相同的字符串转换,则它们将彼此覆盖。 鉴于此-在JavaScript中是否有任何有效的hashmap实现?(例如,第二个Google结果javascript hashmap产生的实现对任何操作都是O(n)。其他各种结果都忽略了具有等效字符串表示形式的不同对象相互覆盖的事实。

12
如何正确使用R中的列表?
简要背景:广泛使用的许多(大多数?)当代编程语言至少都具有一些共同的ADT(抽象数据类型),特别是, 字符串(由字符组成的序列) 列表(值的有序集合),以及 基于映射的类型(将键映射到值的无序数组) 在R编程语言中,前两个分别作为character和实现vector。 当我开始学习R时,几乎从一开始就显而易见两件事:list是R中最重要的数据类型(因为它是R的父类data.frame),第二,我至少不了解它们的工作方式,至少不够好,无法在我的代码中正确使用它们。 一方面,在我看来,R的list数据类型是对映射ADT的简单实现(dictionary在Python,NSMutableDictionaryObjective C,hashPerl和Ruby,object literalJavascript等中)。 例如,通过将键值对传递给构造函数(在Python中dict不是list)来创建它们,就像创建Python字典一样: x = list("ev1"=10, "ev2"=15, "rv"="Group 1") 然后您就可以像访问Python词典那样访问R列表中的项目,例如x['ev1']。同样,您可以通过以下方式仅检索“键”或“值”: names(x) # fetch just the 'keys' of an R list # [1] "ev1" "ev2" "rv" unlist(x) # fetch just the 'values' of an R list # ev1 ev2 rv # "10" "15" "Group …

5
java中的interface和@interface有什么区别?
自从90年代末在大学期间使用JBuilder以来,我还没有接触过Java,所以我有点与时俱进-无论如何,本周我一直在从事一个小型Java项目,并使用Intellij IDEA作为我的IDE ,与我的常规.Net开发有所不同。 我注意到它支持添加接口和@interface,什么是@interface,它与普通接口有何不同? public interface Test { } 与 public @interface Test { } 我做了一些搜索,但是找不到大量有用的有关@interface的信息。

5
函数中的“ this”关键字如何工作?
我刚刚遇到了一个有趣的JavaScript情况。我有一个类,该类的方法使用对象文字表示法定义了多个对象。在这些对象内部,this正在使用指针。从程序的行为,我推断出this指针是指向在其上调用方法的类,而不是由文字创建的对象。 尽管这是我期望的工作方式,但这似乎是任意的。这是定义的行为吗?跨浏览器安全吗?是否有任何推理依据说明它超出了“规格说明”的范围(例如,这是某些更广泛的设计决策/理念的结果)吗?简化的代码示例: // inside class definition, itself an object literal, we have this function: onRender: function() { this.menuItems = this.menuItems.concat([ { text: 'Group by Module', rptletdiv: this }, { text: 'Group by Status', rptletdiv: this }]); // etc }

13
DateTime.Now与DateTime.UtcNow
我一直想知道这两个属性的工作原理到底是什么。我知道第二个是通用的,基本上不涉及时区,但是有人可以详细解释它们的工作原理以及在哪种情况下应该使用哪个?

6
SQL或TSQL Turing完成了吗?
这是今天在办公室提出的。我没有做这种事情的计划,但是理论上您可以用SQL编写编译器吗?乍一看,对我来说似乎是完整的,尽管对于许多类型的问题而言非常麻烦。 如果尚未完成,它将需要什么? 注意:我不想做任何事情,例如用SQL编写编译器,我知道这样做是很愚蠢的,因此,如果我们能够避免这种讨论,我将不胜感激。

17
除了拥有正确的方法之外,接口还有更多其他功能
所以可以说我有这个界面: public interface IBox { public void setSize(int size); public int getSize(); public int getArea(); //...and so on } 我有一个实现它的类: public class Rectangle implements IBox { private int size; //Methods here } 如果我想使用接口IBox,则实际上无法通过以下方式创建它的实例: public static void main(String args[]) { Ibox myBox=new Ibox(); } 对?所以我实际上必须这样做: public static void main(String args[]) { …


10
为什么专用字段专用于类型而不是实例专用?
在C#(和许多其他语言)中,访问相同类型其他实例的私有字段是完全合法的。例如: public class Foo { private bool aBool; public void DoBar(Foo anotherFoo) { if (anotherFoo.aBool) ... } } 正如C#规范(第3.5.1节,第3.5.2节)所述,对私有字段的访问是基于类型而不是实例。我一直在与一位同事讨论这个问题,我们正试图提出一个使其如此工作的原因(而不是限制对同一实例的访问)。 我们能想到的最好的参数是进行相等性检查,其中类可能要访问私有字段以确定与另一个实例的相等性。还有其他原因吗?还是某些绝对地意味着它必须像这样工作的黄金原因,否则将完全不可能?

10
枚举定义中的波浪号(〜)是什么?
我一直很惊讶,即使在这段时间里一直使用C#之后,我仍然设法找到了我不知道的东西... 我曾尝试在互联网上搜索此内容,但在搜索中使用“〜”对我来说效果不佳,我也没有在MSDN上找到任何内容(并不是说它不存在) 我最近看到了这段代码,波浪号(〜)是什么意思? /// <summary> /// Enumerates the ways a customer may purchase goods. /// </summary> [Flags] public enum PurchaseMethod { All = ~0, None = 0, Cash = 1, Check = 2, CreditCard = 4 } 看到它令我有些惊讶,因此我尝试对其进行了编译,并且它起作用了……但是我仍然不知道它的含义/作用。有帮助吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.