私が互いに異なる2「同様の機能を」作るのだろうか。これは私が独自性から来て自習Swiftの2つの機能を正確に区別するにはどうすればよいですか?
から学んだことで明確に
呼び出すことができます。関数名+引数の順序と引数名+戻り値の型。それらの組み合わせは、機能を一意にするためにできることは一意である必要があります(以下の例を参照してください)
Nmu1
とNum2
戻り値の型は、(いわゆるリターン名前を持っていないため、あいまいな原因となります、関数名は既にこの役割として機能)Num3
関数が異なるパラメータ名を持っていますが、それは一意Num1
で機能から分離し、Num2
ません関数を呼び出すときに参照されていません。したがって、関数が呼び出されたときに引数名は参照されないため、異なる引数名では関数が一意になりません。
Num4
の関数は、関数名+引数の順番と引数名+戻り値の型が以前の3つの関数すべてで一意であるため、上のすべての関数と異なります。私は欠場か可能性もいくつかの部分を誤解かもしれません:彼らは//Num1 func foo(guy name: String) -> String { return "Hi \(name)" } //Num2 func foo(guy name: String) { print("Hi \(name)") } //Num3 func foo(guy called: String) -> String { return "Hi \(called)" } //Num4 func foo(dude name: String) -> String { return "What's up \(name)" } //Num5 func foo(man name: String, from place: String) { print("Hi! I'm \(name) I come from \(place)") } //Num6 func foo(from place: String, man name: String) { print("Hi! I'm \(name) I come from \(place)") }
質問を定義したとき、彼らは異なる引数の注文を持っているため
Num5
とNum6
機能は、互いに異なっています。のは、この問題についてもう少し議論してみましょうあなたが私を修正して、私は
おかげ
を逃した部品を追加することができます[更新] あなたの非常にいいだろう。 the difference between Argument and Parameterについて議論する質問から始めましょう。この質問はここで非常に意味をなさない!
戻る公式迅速文書
からの引用への各関数のパラメータは、引数のラベルとパラメータ名の両方を持っています。引数labelは、関数を呼び出すときに使用されます。各引数は、その前に引数のラベルを付けて関数呼び出しに書き込まれます。パラメータ名は、関数の実装で使用されます。デフォルトでは、パラメータは引数名としてパラメータ名を使用します。
引数、パラメータ、引数ラベルとパラメータ名が異なります。ここでの違いは、微分関数に使用できます。
同じパラメータ名、同じパラメータの順番、同じ戻り値の型、同じ関数本体の関数は、異なる引数のラベルと区別できます。詳細については
func foo(dude name: String) -> Int {
print("Hi \(name)!")
return 1
}
func foo(man name: String) -> Int {
print("Hi \(name)!")
return 1
}
//foo(dude: String) & foo(man: String) is identical when calling
のObj-C-互換のメソッドとして定義されMultiple functions with the same name
HTTPを参照してください。 ://stackoverflow.com/questions/27690076/multiple-functions-with-the-name-name。 –
@MartinRありがとうございます。それは多くの助けになります! – SLN