-6

このコードは Xcode 7.3 で書かれています。なぜこのエラーが発生するのかわかりません。Swift 1.0では問題なく動作していました。しかし、swift 2.2 ではそうではありません。

画像の説明

4

2 に答える 2

3

Swift 2.x ドキュメントから:

メソッドのローカルおよび外部パラメータ名

関数パラメーターは、外部パラメーター名の指定で説明されているように、ローカル名 (関数の本体内で使用するため) と外部名 (関数を呼び出すときに使用するため) の両方を持つことができます。メソッドは型に関連付けられた単なる関数であるため、メソッド パラメーターについても同じことが言えます。

...

Swift は、メソッドの最初のパラメータ名にデフォルトでローカル パラメータ名を付け、2 番目以降のパラメータ名にデフォルトでローカル パラメータ名と外部パラメータ名の両方を付けます。この規則は、Objective-C メソッドの作成で慣れ親しんでいる典型的な命名規則と呼び出し規則に一致し、パラメーター名を修飾する必要のない表現力豊かなメソッド呼び出しを可能にします。


スクリーンショットの Swift 1.0 構文と正確に一致させるには、次のように記述する必要があります。

func isDivisible(divided divided: Int, divisor: Int) -> Bool {}

ちなみに、if divided % divisorコンパイルされません。関数本体全体を次のように置き換えることができます

return divided % divisor == 0
于 2016-04-07T11:45:16.930 に答える
0

以下は期待どおりに動作するはずです。

func isDivisible(divided: Int, divisor: Int) -> Bool {
    if divided % divisor == 0 {
        return true
    }
    else {
        return false
    }
}
于 2016-04-07T11:38:22.630 に答える