Entities
Create new folder named entities. In entities folder, create new file named product.go as below:
package entities
type Product struct {
Id string
Name string
Price float64
Quantity int
Status bool
}
Application
Create new folder named src. In src folder, create new file named main.go as below:
package main
import (
"entities"
"fmt"
"strings"
)
func main() {
var products = []entities.Product{
entities.Product{
Id: "p01",
Name: "tivi 1",
Price: 5,
Quantity: 9,
Status: false,
},
entities.Product{
Id: "p02",
Name: "tivi 2",
Price: 2,
Quantity: 8,
Status: true,
},
entities.Product{
Id: "p03",
Name: "laptop 3",
Price: 11,
Quantity: 7,
Status: false,
},
}
fmt.Println("Search product")
keyword := "vi"
result := Search(keyword, products)
if len(result) == 0 {
fmt.Println("No Result")
} else {
fmt.Println("Product List")
for _, product := range result {
Display(product)
fmt.Println("-------------------------")
}
}
}
func Search(keyword string, products []entities.Product) (result []entities.Product) {
for _, product := range products {
if strings.Contains(strings.ToLower(product.Name), strings.ToLower(keyword)) {
result = append(result, product)
}
}
return result
}
func Display(product entities.Product) {
fmt.Println("id: ", product.Id)
fmt.Println("name: ", product.Name)
fmt.Println("price: ", product.Price)
fmt.Println("quantity: ", product.Quantity)
fmt.Println("status: ", product.Status)
fmt.Println("total: ", (product.Price * float64(product.Quantity)))
}
Output
Open Terminal windows in Visual Studio Code and run command line: go run main.go
Search product
Product List
id: p01
name: tivi 1
price: 5
quantity: 9
status: false
total: 45
-------------------------
id: p02
name: tivi 2
price: 2
quantity: 8
status: true
total: 16
-------------------------