@ -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") | |||
} |