为什么没有为方法/构造函数的第一个参数命名?

克劳斯·约根森

NSTimer为例构造时,除第一个参数(方法名称)外的所有参数都被命名为:

NSTimer *timer =
    [NSTimer
        scheduledTimerWithTimeInterval: seconds
        target: self
        selector: @selector(timerTick:)
        userInfo: nil
        repeats: repeats
    ];

为什么第一个参数没有命名?IE

NSTimer *timer =
    [NSTimer scheduledTimerWithTimeInterval
        interval: seconds
        target: self
        selector: @selector(timerTick:)
        userInfo: nil
        repeats: repeats
    ];

这背后是否有一些语言设计决策?它提供一些我在这里看不到的灵活性吗?

韦恩

正如Apple文档所说,说“ Objective-C方法声明将参数作为其名称的一部分包括在内”确实更准确

整个过程确定了方法。这就是为什么您询问的方法始于:

scheduledTimerWithTimeInterval

...这样它就自然地读取,而第一个参数没有附加名称。

来源:

作为某种存在的答案,为什么问题的答案通常很简单,“因为那是它的设计方式”。必须假定的Objective-C的创建者认为,与其他方法相比,这是一种更易读的方法声明方法。就是这样。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Blob构造函数只将数组作为第一个参数?

为什么第一个构造函数不传递参数自动运行,即使它不是默认构造函数?

tf.reshape没有为第一个元素提供?(None)

为什么Python中没有第一个(可迭代的)内置函数?

为什么第二个参数没有根据第一个参数进行过滤?

为什么一个元组在`[Serializable]`时没有无参数构造函数?

无参数构造函数中的第一个参数是什么?

为什么以下程序没有选择与第一个模板参数相同类型的参数?

为特定组件创建意图时,何时“ this”不是构造函数的第一个参数?

标准ClassLoader类构造函数的第一个参数是什么?

为什么url_for()将“ static”作为第一个参数使用?没有static()

不能与拉姆达替换SAM-构造函数时,第一个参数是一类具有一个方法

没有第一个参数的可变参数-va_start属于什么?

为什么IEnumerable的Where将第一个参数传递为“ this”

Razor 页面:为什么第一个参数为空

为什么函数是Haskell中的第一个参数

为什么“函数”的第一个参数否定括号?

MS Access 查询,IIF 函数返回错误为“没有为一个或多个必需参数提供值”

为什么在Kotlin中没有val / var修饰符的主构造函数中需要一个参数?

为什么会出现错误消息“没有为一个或多个必需参数提供值”。Vb.net

为什么在C中用一个参数定义一个没有参数的函数?

为什么没有为std :: string保留构造函数?

为什么没有在第二个参数上只在第一个参数上进行类型检查?

以Vararg为第一个参数的Kotlin方法

为什么我的第一个活动没有显示?

为什么身体的第一个孩子没有定义?

JQuery没有看到第一个<p>,但是为什么呢?

为什么第一个 for 循环没有在代码块中执行?

为什么没有通过array_search()显示$ img的第一个值