Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialCarter Selman
1,660 PointsIm learning Structs, but I can't figure out how to apply them to this problem.
This is my code, can someone tell me what I did wrong please? When I set my variable amount to 100, it tells me I have an extra argument, and when I take it out, I get an error saying Recursive value type 'Expense' is not allowed.
struct Expense {
var description: String
var amount: Double = 0.0
init (description: String) {
self.description = description
}
func calculateTaxes(percentage: Double) -> Double {
return self.amount * (percentage/100)
}
var item = Expense(description: "", amount: 100)
}
1 Answer
Steve Hunter
57,712 PointsHi Carter,
I think you just have a few brackets in the wrong place.
The var item
bit happens outside of the struct.
struct Expense {
var description: String
var amount: Double = 0.0
init (description: String) {
self.description = description
}
// add the calculateTaxes method here
// it should accept only one parameter named 'percentage' of type Double
func calculateTaxes(percentage: Double) -> Double {
return (self.amount * (percentage/100))
}
} // struct closes here
var item = Expense(description: "Hotel")
item.amount = 100
Also, the initializer only takes one parameter - the description
of type String.
That should sort it for you!
Steve.
Carter Selman
1,660 PointsCarter Selman
1,660 PointsThank you!
Steve Hunter
57,712 PointsSteve Hunter
57,712 PointsNo problem! :-)