Questions tagged «language-design»

与编程语言的任何方面的设计有关的问题的标记。

22
异常或错误代码约定
昨天,我与同事就首选的错误报告方法进行了激烈的辩论。主要是我们正在讨论使用异常或错误代码来报告应用程序层或模块之间的错误。 您使用什么规则来决定是否抛出异常或返回错误代码以进行错误报告?



5
为什么C#3.0对象初始化程序构造函数的括号是可选的?
似乎C#3.0对象初始化程序语法允许在存在无参数构造函数的情况下在构造函数中排除括号的打开/关闭对。例: var x = new XTypeName { PropA = value, PropB = value }; 相对于: var x = new XTypeName() { PropA = value, PropB = value }; 我很好奇为什么构造函数打开/关闭括号对在此之后是可选的XTypeName?

5
为什么在C#中不允许使用const参数?
尤其对于C ++开发人员而言,这看起来很奇怪。在C ++中,我们通常将参数标记为const,以确保其状态不会在方法中更改。还有其他C ++特定的原因,例如const ref为了通过ref 传递而传递,并确保不会更改状态。但是为什么我们不能在C#中将其标记为方法参数const? 为什么我不能像下面这样声明我的方法? .... static void TestMethod1(const MyClass val) {} .... static void TestMethod2(const int val) {} ....

7
PHP全局函数
什么是效用全球关键字? 是否有任何理由偏爱一种方法而不是另一种方法? 安全? 性能? 还要别的吗? 方法1: function exempleConcat($str1, $str2) { return $str1.$str2; } 方法2: function exempleConcat() { global $str1, $str2; return $str1.$str2; } 什么时候使用有意义global? 对我来说,这似乎很危险 ……但可能只是缺乏知识。我对文档化的技术原因感兴趣(例如,带有示例代码,链接到文档...)。 提前致谢! 赏金 这是关于该主题的一个很好的一般性问题,我(@Gordon)提供了赏金以获取其他答案。您的答案是否与我的观点一致或给出不同的观点都无关紧要。由于该global主题时不时出现,因此我们可以使用一个很好的“规范”答案进行链接。

3
从零开始的月份编号
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 某些流行的编程语言使用的月份编号相差1 – Java和Java一样,要想到的是JavaScript,如果提供内存,则C是另一个。我有一些问题: 如果您要忽略外行人使用的月份编号,那么为什么出于一致性考虑,也要忽略外行人使用的日期编号,并从0开始对每个月中的天数进行编号? 为什么这么常见? 首先是谁的主意?



4
会将'::'替换为'。在C ++中造成歧义?
在C ++中,运算符::用于访问名称空间或类中的类,函数和变量。 如果使用语言规范.代替::访问对象的实例变量/方法时那样,而不是在那种情况下,那么是否会引起可能不存在的歧义::? 鉴于C ++不允许变量名也是类型名,因此我认为这种情况不会发生。 澄清:我不是问为什么::选择了.,即使它也可以工作?

7
R中的因素:除了烦恼之外?
R中的基本数据类型之一是因子。根据我的经验,因素基本上是痛苦的,我从不使用它们。我总是转换为字符。我感到奇怪的是,我想念一些东西。 在需要使用因子数据类型的情况下,有一些重要的函数示例将因子用作分组变量吗?是否有具体情况时,我应该使用的因素?


10
为什么C ++不允许继承友谊?
为什么友谊在C ++中至少不能有选择地继承?我知道出于明显的原因而禁止传递性和自反性(我说这只是为了避开简单的FAQ引用答案),但是缺少一些东西使virtual friend class Foo;我感到困惑。有人知道这个决定背后的历史背景吗?友谊真的只是一种有限的黑客手段,此后又进入了一些晦涩可敬的用途吗? 编辑以澄清问题:我是在谈论以下情况,而不是 A的孩子接触B或B及其孩子都接触的情况。我也可以想象有选择地授予对朋友功能的覆盖等的访问权限。 class A { int x; friend class B; }; class B { // OK as per friend declaration above. void foo(A& a, int n) { a.x = n; } }; class D : public B { /* can't get in A w/o 'friend …

6
除JavaScript外,其他任何语言在花括号开始位置(同一行和下一行)之间是否有区别?
今天,当我随机阅读O'Reilly的JavaScript模式书籍时,我发现了一件有趣的事情(参考第27页)。 在某些情况下,如果使用Javascript,则括号起始位置不同。 function test_function1() { return { name: 'rajat' }; } var obj = test_function1(); alert(obj); //Shows "undefined" 而 function test_function2() { return { name: 'rajat' }; } var obj = test_function2(); alert(obj); //Shows object JSfiddle演示 那里是否有其他语言有这种行为?如果是这样,那我肯定要改变我的习惯.. :) 我主要关注PHP,C,C ++,Java和ruby。

5
实现类型推断
我在这里看到了一些有关静态类型与动态类型的有趣讨论。由于编译类型检查,更好的文档代码等,我通常更喜欢静态类型。但是,我同意,例如,如果采用Java的方式完成代码,它们会使代码混乱。 因此,我将开始构建自己的功能样式语言,而类型推断是我要实现的事情之一。我确实知道这是一个很大的主题,并且我不尝试创建以前没有做过的事情,只是进行基本推理... 关于如何阅读的任何指示都可以帮助我解决这个问题?最好是一些比较实用/实用的东西,而不是更多的理论范畴论/类型理论课本。如果那里有一个实施讨论文本,以及数据结构/算法,那将是很可爱的。

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.