> ... エラーにならないのはなぜ ...
どこで、どんなエラーが出ると考えたのでしょうか?
func - ... として "-" という名前の関数を定義しようとしてますが、
playgrounde で以下を試すと -(left, right) での関数呼び出しはエラーになります。
lang
1mport UIKit
2
3func -(left: Array<CGFloat>, right: Array<CGFloat>) -> Array<CGFloat> {
4 var result: Array<CGFloat> = []
5 for index in 0..<left.count {
6 var difference = left[index] - right[index]
7 result.append(difference)
8 }
9 return result
10}
11
12let left : Array<CGFloat> = [1.0, 2.0]
13let right : Array<CGFloat> = [1.0, 3.0]
14var diff = -(left, right)
![イメージ説明]WIDTH:600
func diffs(....)
とすれば、
diffs(left, right) の呼び出しはできます。
![イメージ説明]WIDTH:600
関数の名前も問題がありそうですが、関数の中身についても問題がありそうです。
left の配列の数より right の配列の数が少ないと
left[index] - right[index] の部分で
right[index] の要素が配列の範囲外のアクセスのエラーになると思います。
演算子を自分で定義したいなら、それなりの書き方が必要です。
参考: Swiftで新しい演算子を定義する http://qiita.com/Ushio@github/items/3c782b0d38bf3d11fe29
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。