2017-06-10 104 views
0

我刚刚开始编码,并且从类中访问函数时遇到问题。我想打印一个三角形的区域,但它只打印“()”。这里是我的代码:从类访问功能

class Shape { 
    var area:Double? 
    func calculateArea(valA:Double, valB: Double) { 
     area = valA * valB 
    } 
} 
class Triangle: Shape { 
    override func calculateArea(valA: Double, valB: Double) { 
     area = ((valA*valB)/2) 
    } 
} 

var area1 = Triangle() 
print (area1.calculateArea(valA: 2, valB: 1)) 

在此先感谢。

回答

0

你的函数不返回任何结果,所以你做一个空的打印。

您可以从类属性打印area值:

area1.calculateArea(valA: 2, valB: 1) 
print(area1.area) 

或编辑功能

func calculateArea(valA:Double, valB: Double) -> Double { 
    area = valA * valB 
    return area 
} 

override func calculateArea(valA: Double, valB: Double) -> Double { 
    area = ((valA*valB)/2) 
    return area 
} 

,那么你可以直接打印功能结果

print(area1.calculateArea(valA: 2, valB: 1)) 
0

您的calculateArea函数不会返回任何内容,所以没有什么可打印的。

你要调用的函数,然后打印您的area1对象的area属性:

var area1 = Triangle() 
area1.calculateArea(valA: 2, valB: 1) 
print(area1.area)