I'm new in Golang and haven't done concurrency in a bit. I would love to hear your opinion on my Dining problem Go solution.
```
package main

import "fmt"
import "sync"
import "time"

const NumPhilosophers = 5
var phi [NumPhilosophers]int
var forks [NumPhilosophers]sync.Mutex

func startPhilosopher(number int, c chan string){
	left, right := (number+1)%NumPhilosophers, number
	min, max := left,right
	if min > max {
		min, max = max, min
	}

	for i := 0; i < 4; i++ {
		c <-"Thinking " + time.Now().Round(0).String()
		forks[min].Lock()
		forks[max].Lock()

		c <- "Eating " + time.Now().Round(0).String()

		forks[max].Unlock()
		forks[min].Unlock()
	}
	close(c)
}

func main() {
	var ch [NumPhilosophers]chan string
	for i := 0; i < NumPhilosophers; i++ {
		phi[i] = i
		ch[i] = make(chan string)
		go startPhilosopher(i, ch[i])
	}

	for a := 0; a < NumPhilosophers; a++ {
		fmt.Println(a)
		for i := range ch[a] {
			fmt.Println(i)
		}
	}
}
```