Go Language Tutorial
In Go programming, we can also define methods in defined struct object by passing struct object to the method.
package main import ( "fmt" "time" ) //define a struct 'Student' type Student struct { id int name string grade int mark1 float32 mark2 float32 created time.Time } func (s Student) show() { // displays student details fmt.Println("----------------") fmt.Printf("Id: %d\n", s.id) fmt.Printf("Name: %s\n", s.name) fmt.Printf("Grade: %d\n", s.grade) fmt.Printf("Mark1: %.2f\n", s.mark1) fmt.Printf("Mark2: %.2f\n", s.mark2) fmt.Printf("Created: %s\n", s.created.String()) } // Methods to calculate total marks using struct instance func (s Student) totalMarks() float32 { return (s.mark1 + s.mark2) } func (s Student) updateMarks(newMark1, newMark2 float32) { s.mark1 = newMark1 s.mark2 = newMark2 } func main() { var student1 Student // setting values student1.id = 1 student1.name = "Student1" student1.grade = 10 student1.mark1 = 76 student1.mark2 = 82 student1.created = time.Now() // displays student details fmt.Println("Student Details") student1.show() fmt.Printf("Total Marks: %.2f\n", student1.totalMarks()) // updates student1 marks student1.updateMarks(86, 91) // displays student details fmt.Println("Student Details") student1.show() fmt.Printf("Total Marks: %.2f\n", student1.totalMarks()) }Output:
$ go build structs.go $ ./structs Student Details ---------------- Id: 1 Name: Student1 Grade: 10 Mark1: 76.00 Mark2: 82.00 Created: 2018-07-25 22:25:48.616170275 +0530 IST Total Marks: 158.00 Student Details ---------------- Id: 1 Name: Student1 Grade: 10 Mark1: 76.00 Mark2: 82.00 Created: 2018-07-25 22:25:48.616170275 +0530 IST Total Marks: 158.00« Previous Next »