我常常发现自己对如何使用术语"参数"和"参数"感到困惑.它们似乎在编程世界中可以互换使用.
使用它们的正确惯例是什么?
"参数"和"参数"之间是否有区别,或者它们只是同义词?
metatype .Type和.selfSwift有什么区别?
做.self并.Type返回struct?
我明白.self可以用来检查dynamicType.你怎么用的.Type?
如果某些函数f带有参数p_1,...,p_n类型T_1,...,T_n分别用参数调用a_1,......,a_n并且它的正文抛出异常,则完成或返回,参数被破坏的顺序是什么?为什么?如果可能,请提供标准参考.
编辑:我实际上想询问函数"参数",但是由于TC和Columbo设法清除了我的困惑,我将这个问题留下来讨论参数并询问一个关于参数的新单独问题.有关区别,请参阅有关此问题的评论.
这是我关于未处理的枚举案件的另一个问题的另一个案例,我建议将其作为一个单独的问题提出.
假设我们有SomeEnum一个switch语句处理它,如:
enum SomeEnum
{
One,
Two
}
void someFunc()
{
SomeEnum value = someOtherFunc();
switch(value)
{
case One:
... break;
case Two:
... break;
default:
throw new ??????Exception("Unhandled value: " + value.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我们处理所有可能的枚举值但仍保留默认值,以防添加新成员,并且我们希望确保我们知道缺少的处理.
我的问题是:在你想要通知给定的代码路径没有被处理/实现或者从未被访问过的情况下,什么是正确的异常?我们曾经使用NotImplementedException但它似乎不合适.我们的下一个候选人是,InvalidOperationException但这个词听起来不对.什么是正确的,为什么?
我每天遇到的一个陷阱是客户说一件事而另一件事.通常情况下,这只是由于某处的沟通错误,但实际上他们偶尔会说同样的事情,我只是使用不同的术语.
例如,我的一位客户前几天提到了一个他称之为"找到你输入时"的功能.有点困惑,我问他是什么意思,他描述了谷歌的功能,一旦你开始输入搜索查询,谷歌建议其他,流行的查询与你输入的字母相匹配.
点击!他的意思是AutoComplete!他没有错,只是我之前从未听过这个词.
本着减少混淆的精神,你能想到哪些术语是不同的,但基本上是相同的意思?
此外,人们认为什么术语意味着相同的事情,但事实并非如此.请区分两者.
每个答案只需要一组术语,因此我们可以对最佳答案进行投票.
当然没有一种正确的方法可以做到这一点,但我甚至无法想到任何体面的命名方案,这就是我在这里问的原因.(所以:虽然所有答案都是主观的,但它们仍然有用!)
问题如下:对于简单的聚合结构,我们不使用成员var前缀.
struct Info {
int x;
string s;
size_t z;
Info()
: x(-1)
, s()
, z(0)
{ }
};
Run Code Online (Sandbox Code Playgroud)
然而,提供初始化结构的初始化程序ctor有时是有用的,但是当参数的最自然名称已被成员变量本身占用时,我无法为参数提供合适的命名方案:
struct Info {
int x;
string s;
size_t z;
Info(int x?, string s?, size_t z?)
: x(x?)
, s(s?)
, z(z?)
{ }
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,其他人使用了什么?
arguments ×6
parameters ×5
function ×3
terminology ×3
c# ×2
c++ ×2
.net ×1
exception ×1
java ×1
swift ×1