| @ -0,0 +1,55 @@ | |||
| package main | |||
| import "fmt" | |||
| type Employee struct { | |||
| Id int | |||
| FirstName string | |||
| LastName string | |||
| } | |||
| type Developer struct { | |||
| Individual Employee | |||
| HourlyRate int | |||
| WorkWeek [7]int | |||
| } | |||
| type Weekday int | |||
| const ( | |||
| Sunday Weekday = iota | |||
| Monday | |||
| Tuesday | |||
| Wednesday | |||
| Thursday | |||
| Friday | |||
| Saturday | |||
| ) | |||
| func main() { | |||
| d := Developer{Individual: Employee{Id: 1, FirstName: "Tony", LastName: "Stark"}, HourlyRate: 10} | |||
| d.LogHours(Monday, 8) | |||
| d.LogHours(Tuesday, 10) | |||
| fmt.Println("Hours worked on monday:", d.WorkWeek[Monday]) | |||
| fmt.Println("Hours worked on tuesday:", d.WorkWeek[Tuesday]) | |||
| fmt.Printf("Hours worked this week: %d\n", d.HoursWorked()) | |||
| } | |||
| func (d *Developer) LogHours(day Weekday, hours int) { | |||
| d.WorkWeek[day] = hours | |||
| } | |||
| func (d *Developer) HoursWorked() int { | |||
| total := 0 | |||
| for _, v := range d.WorkWeek { | |||
| total += v | |||
| } | |||
| return total | |||
| } | |||
| @ -0,0 +1,29 @@ | |||
| package main | |||
| import "fmt" | |||
| func main() { | |||
| itemsSold() | |||
| } | |||
| func itemsSold() { | |||
| items := make(map[string]int) | |||
| items["John"] = 41 | |||
| items["Celina"] = 109 | |||
| items["Micah"] = 24 | |||
| for k, v := range items { | |||
| fmt.Printf("%s sold %d items and ", k, v) | |||
| if v < 40 { | |||
| fmt.Println("is below expectations") | |||
| } else if v > 40 && v <= 100 { | |||
| fmt.Println("meets expectations") | |||
| } else { | |||
| fmt.Println("exceeded expectations") | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,33 @@ | |||
| package main | |||
| import ( | |||
| "fmt" | |||
| "strings" | |||
| ) | |||
| func main() { | |||
| hdr := []string{"empid", "employee", "address", "hours worked", | |||
| "hourly rate", "manager"} | |||
| csvHdrCol(hdr) | |||
| hdr2 := []string{"employee", "empid", "hours worked", "address", | |||
| "manager", "hourly rate"} | |||
| csvHdrCol(hdr2) | |||
| } | |||
| func csvHdrCol(header []string) { | |||
| csvHeadersToColumnIndex := make(map[int]string) | |||
| for i, v := range header { | |||
| v := strings.TrimSpace(v) | |||
| switch strings.ToLower(v) { | |||
| case "employee", "hours worked", "hourly rate": | |||
| csvHeadersToColumnIndex[i] = v | |||
| } | |||
| } | |||
| fmt.Println(csvHeadersToColumnIndex) | |||
| } | |||
| @ -0,0 +1,26 @@ | |||
| package main | |||
| import "fmt" | |||
| func main() { | |||
| for i := 1; i <= 15; i++ { | |||
| n, s := fizzBuzz(i) | |||
| fmt.Printf("Results: %d %s\n", n, s) | |||
| } | |||
| } | |||
| func fizzBuzz(i int) (int, string) { | |||
| switch { | |||
| case i%15 == 0: | |||
| return i, "FizzBuzz" | |||
| case i%3 == 0: | |||
| return i, "Fizz" | |||
| case i%5 == 0: | |||
| return i, "Buzz" | |||
| } | |||
| return i, "" | |||
| } | |||
| @ -0,0 +1,27 @@ | |||
| package main | |||
| import "fmt" | |||
| func fizzBuzz() { | |||
| for i := 1; i <= 30; i++ { | |||
| if i%15 == 0 { | |||
| fmt.Println("FizzBuzz") | |||
| } else if i%3 == 0 { | |||
| fmt.Println("Fizz") | |||
| } else if i%5 == 0 { | |||
| fmt.Println("Buzz") | |||
| } else { | |||
| fmt.Println(i) | |||
| } | |||
| } | |||
| } | |||
| func main() { | |||
| fmt.Println("Main is in control") | |||
| fizzBuzz() | |||
| fmt.Println("Back to main") | |||
| } | |||