Swift
1class FizzBuzz{ 2 3 let value = Decide() 4 5 var arrayResult: [String]{ 6 get{ 7 return self.arrayResult 8 } 9 set(newValue){ 10 self.arrayResult = newValue 11 } 12 } 13 14 15 16 func processed(number:Int) -> [String]{ 17 for number in 1..<number{ 18 arrayResult[number] = value.decide(by: number) 19 } 20 return arrayResult 21 } 22 23 24} 25class Decide { 26 let value = IsFizzBuzz() 27 func decide(by number:Int) -> String{ 28 if (value.isFizz(a: number) && value.isBuzz(a: number)){return "FizzBuzz"} 29 if (value.isFizz(a: number)) {return "Fizz"} 30 if (value.isBuzz(a: number)) {return "Buzz"} 31 return "" 32 } 33} 34 35class IsFizzBuzz{ 36 func isFizz(a number:Int) -> Bool{ 37 if(number%3 == 0 ){ 38 return true 39 } 40 return false 41 } 42 43 func isBuzz(a number:Int) -> Bool{ 44 if(number%5 == 0){ 45 return true 46 } 47 return false 48 } 49}
processedを呼ぶとarrayResult[number] = value.decide(by: number)で無限にゲッターを読んでしまうようです。
どのようにしたらいいですか?
具体できにしたいこと
arryResultをjavaで言うフィールドのように使用したい
value.decide(by: number)の結果を配列それぞれの配列に保持
ループが終わり次第配列全てをリターン
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/07 05:21
2018/05/07 05:24