除了帶有協(xié)議擴展的語法外:protocol P {}extension P where Self : UIView {}...我偶然發(fā)現(xiàn)您可以在協(xié)議本身上使用相同的where子句:protocol P where Self : UIView {}請注意,這是不一樣的where子句限制一個通用的協(xié)議,并沒有自己做P上的通用協(xié)議。我的實驗似乎表明,此處只能使用冒號,并且冒號后面的內(nèi)容必須是類或協(xié)議(可能是通用的)。我很好奇:這是怎么逃避我的注意的?所以我去尋找它何時出現(xiàn)的證據(jù)。在Swift 3.0中,前一種語法是合法的,但后者則不合法。在Swift 3.3中,兩者均合法。因此,后一種語法必須已在Swift 3.2之類的工具中悄然引入。我之所以說“安靜”,是因為在發(fā)行說明中找不到任何有關(guān)它的信息。第二種語法是什么?看起來是不是一種確保其他類型都不能采用此協(xié)議的便捷方法?Swift標頭似乎沒有使用它。
帶“ where Self”子句的Swift協(xié)議
瀟瀟雨雨
2019-09-26 10:37:09