Тип не соответствует типу протокола «Последовательность» - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь перебрать значения в массиве, но получаю ошибку. Я не уверен, как исправить:

Ошибка комментируется ниже.Я думал, что способ итерации и извлечения каждого int был бы циклом for.Тем не менее, я пытался перебрать массив, а не int, как предлагает XCode.

public class TreeNode {
    public var val: Int
    public var left: TreeNode?
    public var right: TreeNode?
    public init(_ val: Int) {
        self.val = val
        self.left = nil
        self.right = nil
      }
  }


func rangeSumBST(_ root: TreeNode?, _ L: Int, _ R: Int) -> Int {
    var validNums: [Int] = []

//ERROR IS HERE
    for value in TreeNode {
        if (value >= L) {
            if (value <= R) {
                validNums.append(value)
            }
        }
    }
    print(validNums.reduce(0, +))


    return validNums.reduce(0, +)
}

var root: [Int] = [10,5,15,3,7, 0 ,18]
var L = 7
var R = 15

Я ожидаю, что он будет пытаться перебрать массив, а не int в массиве, но, похоже, именно это он и делает, основываясь на приведенном ниже сообщении об ошибке:

ТипTreeNode.Type не соответствует протоколу Sequence

...