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