我一直在关注雷-温德利希的书。高级iOS应用架构他们有一个协议,看起来像下面。
protocol RideOptionDeterminedResponder {
func pickUpUser(in rideOptionID: RideOptionID)
}
我不明白我们 in
在...之前 rideOptionID
参数(顺便说一下,它只是String的一个typealias),因为我一直以为只有在写闭包时才会用到这个关键字。我在周围找了很多关于使用 in
但还没有任何收获。
的目的是什么?in
在这里,如果没有这个功能会有什么不同?
如果你需要更多的信息来了解这个功能的工作原理,以便更好的解释自己,就告诉我吧)。
Swift中的函数支持外部和内部名称。这实际上意味着你可以使用两个不同的名字来引用同一个参数。这就是 in
在你提供的代码中,是一个外部参数名。
外部参数和内部参数的区别在于,你在调用一个方法时使用第一个参数,而在处理该方法主体内的值时使用第二个参数。
所以,你会调用这样的方法。
// Call the method using the external parameter name in
pickUpUser(in: someRideOptionID)
func pickUpUser(in rideOptionID: RideOptionID) {
// Do something with the value, accessing it using the internal parameter name rideOptionID
}
The in
这里的关键字只是为了指定函数中的参数。在调用函数时,你可以直接将其调用为。
pickUpUser(in: rideOptionID)
If in
是不存在的,你就得叫它为。
pickUpUser(rideOptionID: rideOptionID)
你可以通过 Swift文档 详见 Specifying Argument Labels