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 trial

iOS Swift Enums and Structs Structs and their Methods Struct Methods

Eligio Esis
Eligio Esis
2,302 Points

Create a variable named item and assign it an instance of Expense (remember to use the initializer with the description

What's the correct answer for this one? Thanks.

struct.swift
struct Expense {
    var description: String
    var amount: Double = 0.0

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

    // add the calculateTaxes method here
    func calculateTaxes(percentage: Double) -> Double
    {
      return (self.amount * (percentage/100)) 
    }
    // it should accept only one parameter named 'percentage' of type Double

}
Stone Preston
Stone Preston
42,016 Points

what task are you on and what all have you tried

Eligio Esis
Eligio Esis
2,302 Points

It's the 3rd task.

1 Answer

Stone Preston
Stone Preston
42,016 Points

task 3 asks you to create a variable named item and assign it an instance of Expense. creating an instance involves calling the init method for the struct. init methods are typically called like so:

Structname()

many initializers also take parameters. the init method for Expense takes one parameter, a description. remember that all initializer parameters have external parameter names that must be provided when called.

to assign a variable an instance of expense we call the init method:

var item = Expense(description: "some description of the expense")

then you need to assign the amount property of that instance a value of 100. to access properties of instances you use dot syntax:

instanceName.propertyName

so to assign the amount property of our item instance a value of 100 you would use:

item.amount = 100

make sure you place your code 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)) 
    }

}

var item = Expense(description: "some description of the expense")
item.amount = 100