考虑以下方法:
+(void) myMethod:(int)arg1 **argument2**(int)arg2 **argument3**(int) arg3;
看看第一个参数与第二个和第三个参数不同,没有描述,给人一种不对称的印象。此外,您可以期望额外输入将在您传入时提供命名参数,但您仍然必须以正确的顺序传递它们。
任何人都可以帮我理解这个吗?
答案 0 :(得分:1)
在:
和argument2
argument3
此外,第一个参数名为myMethod
。通过Apple的命名建议指南,您会看到该方法应该以识别第一个参数的语义的方式命名。
编辑:
答案 1 :(得分:1)
这背后的逻辑虽然很难习惯但仍然存在 关于你的第一个注释,关于第一个参数的命名, Apple鼓励您按如下方式命名您的方法:
+(void)myMethodWithArg1:(int)arg1 Arg2:(int)arg2 Arg3:(int)arg3;
因此,这个名字可以像英文中的句子一样读取
(我的方法有类型为int的Arg1,类型为int的Arg2等)
关于命名的参数并且无法改变顺序,这对我来说也没有任何意义
并且我上面的评论是正确的,你错过了那些令人讨厌的东西:在params之后
此外,ObjC的语法与Smalltalk(http://www.smalltalk.org/main/)的语法有很强的关系 我鼓励你阅读它以及两种语言之间的关系
希望这会有所帮助
答案 2 :(得分:0)
希望the response to this other question能帮助您理解所看到的内容。
答案 3 :(得分:0)
方法名称应该描述第一个参数。
像:
+ (void)updateUserWithId:id andAge:age
因此,整个表达式给出了一种自然的句子。