2017-06-10 138 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)