language-design

    1热度

    1回答

    想象一下,无论您何时创建通用类MyClass<T>,都会自动生成一个接口MyClass<>,其中包含所有不使用通用参数或返回值的方法和属性MyClass<T>。 这将使我无法从创建一次性接口的工作中解脱出来,只是为了能够处理不同的T类型的通用对象。这个想法有一个基本问题,那就是它不是语言的一部分,或者只是一个“没有被优先考虑或被认为是重要的”的情况? 当我说“接口”时,我并不是说它必须被分类为“接

    0热度

    1回答

    看起来编译器/解析器应该足够智能以检测函数是否使用await,那么它会自动变为async函数。 为什么我不得不输入async关键字?它增加了混乱,并且有很多时候我忘记添加它,并且出现错误,然后我必须添加它。 当编译器看到await时,编译器是否会自动将该函数提升为async,并且只是为每个人解决处理问题的麻烦会有什么缺点?

    0热度

    2回答

    using System; using System.Collections.Generic; using System.Collections.ObjectModel; namespace ConsoleApplication11 { class Customer { public List<string> Strings {

    3热度

    1回答

    我不是一个功能程序员。所以我对模式匹配,模式或其他任何东西都不是很熟悉。对我而言,我只理解陈旧的switch声明的概念。 编译器如何实现匹配语句?匹配和交换机之间究竟有什么区别?有一个GNU C99扩展,它可以让你有一个开关的情况下的范围,是有之间的差异: match x { 0 ... 9 => ..., _ => ..., } 和 switch (x) { case

    3热度

    1回答

    我一直认为JavaScript中的对象是简单的键值对,即散列表,但在阅读this文章后我很困惑。 笔者特意说: 当你使用一个对象,如果它是一个哈希表 ,它会打开 到一个哈希表。 那么,到底是什么呢?特别是整个段落让我感到困惑。有人可以解释一下吗?

    0热度

    2回答

    我学习C#和跨越,使我对它的语法有点不舒服了几件事情来了。 案例1 byte num1 = 10; // works int ten = 10; byte num2 = ten; // Compile error: Cannot implicitly convert 'int' to byte. An explicit conversion exists. 在第一条语句编译器隐蒙上文字10

    0热度

    2回答

    更新1 看起来好像我的英语非常糟糕,或者人们只是不给一个...了解我在问什么,或者只是看看帖子的标题。 C#5 specification明确规定: Because the backing field is inaccessible, it can be read and written only through the property accessors, even within the co

    1热度

    1回答

    我正在使用Rex和Racc创建我自己的语言,但我陷入了困境。我不知道如何添加函数或任何类型的不会像lambda一样立即执行的代码。我在语言中添加了块/ lambda表达式,但块中的任何内容都会立即执行。我怎么能做出一个块/ lambda,它可以在任何时候运行多次,并有它自己的范围?或者甚至像if语句那样,只在语句为真时才执行“block”? 这里是我的代码: lexer.rex: class My

    0热度

    2回答

    当我第一次学习C++时,我注意到函数是从上到下创建的,而不像Java这样的代码中函数“声明”的顺序无关紧要的语言。 C++例如: #include <iostream> using namespace std; int main() { test(); return 0; } void test() { } 但是,当你交换的程序正常工作的功能的顺序。 当C+

    1热度

    1回答

    我的问题很简单,也许很愚蠢。 请告诉我当左操作数是一个类型或命名空间和.的名称用于后面经由::在C++访问枚举成员,当我们通过.