Go package names are short, lowercase identifiers that make selectors read naturally.

Package Names

package_names.go
package main

import "fmt"

func isLowerIdentifier(name string) bool {
	if name == "" {
		return false
	}
	for _, ch := range name {
		if ch < 'a' || ch > 'z' {
			return false
		}
	}
	return true
}

func main() {
	var packageName = 
	lowercase := isLowerIdentifier(packageName)
	selector := packageName + ".Store"
	style := "review"
	if lowercase {
		style = "ok"
	}

	fmt.Println("package=", packageName)
	fmt.Println("selector=", selector)
	fmt.Println("lowercase=", lowercase)
	fmt.Println("style=", style)
}
package main

import "fmt"

func isLowerIdentifier(name string) bool {
	if name == "" {
		return false
	}
	for _, ch := range name {
		if ch < 'a' || ch > 'z' {
			return false
		}
	}
	return true
}

func main() {
	var packageName = 
	lowercase := isLowerIdentifier(packageName)
	selector := packageName + ".Store"
	style := "review"
	if lowercase {
		style = "ok"
	}

	fmt.Println("package=", packageName)
	fmt.Println("selector=", selector)
	fmt.Println("lowercase=", lowercase)
	fmt.Println("style=", style)
}
package main

import "fmt"

func isLowerIdentifier(name string) bool {
	if name == "" {
		return false
	}
	for _, ch := range name {
		if ch < 'a' || ch > 'z' {
			return false
		}
	}
	return true
}

func main() {
	var packageName = 
	lowercase := isLowerIdentifier(packageName)
	selector := packageName + ".Store"
	style := "review"
	if lowercase {
		style = "ok"
	}

	fmt.Println("package=", packageName)
	fmt.Println("selector=", selector)
	fmt.Println("lowercase=", lowercase)
	fmt.Println("style=", style)
}
package naming Good package names avoid stutter and casing surprises at call sites.