顶层不允许表达

时间:2015-12-12 21:09:54

标签: swift

class NamedShape {
    var numberOfSides: Int = 0
    var name: String

    init(name: String) {
        self.name = name
    }

    func simpleDescription() -> String {
        return "A shape with \(numberOfSides) sides."
    }
}

class Square: NamedShape {
    var sideLength: Double

    init(sideLength: Double, name: String) {
        self.sideLength = sideLength
        super.init(name: name)
        numberOfSides = 4
    }

    func area() ->  Double {
        return sideLength * sideLength
    }

    override func simpleDescription() -> String {
        return "A square with sides of length \(sideLength)."
    }   
}


let test = Square(sideLength: 5.2, name: "my test square")
let a = test.area()
print(a)    //here gives  me the error: Expression are not allowed at the top level

2 个答案:

答案 0 :(得分:1)

您正尝试在顶层执行void函数。 indexEnemy必须嵌套在类,结构等中。

答案 1 :(得分:-1)

代码末尾的那三行需要在其他地方,例如类中的方法。例外情况是,如果您正在使用游乐场,我希望在这种情况下您想要做的事情 - 游乐场可以使用松散的代码。

如果你想把它放在一个类中,请使用以下内容:

class Testy {
    func doStuff() {
        let test = Square(sideLength: 5.2, name: "my test square")
        let a = test.area()
        print(a)
    }
}

如果您想从现有方法中调用它,请尝试在视图控制器中使用viewDidLoad()之类的内容。