learned I didn't need git for external modules and different folders can have different mains
This commit is contained in:
		
							
								
								
									
										52
									
								
								cmd/sum/sum.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								cmd/sum/sum.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bufio"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
	"strconv"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func OpenFile(fileName string) (*os.File, error) {
 | 
			
		||||
	fmt.Println("Opening", fileName)
 | 
			
		||||
	return os.Open(fileName)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CloseFile(file *os.File) {
 | 
			
		||||
	fmt.Println("Closing file")
 | 
			
		||||
	file.Close()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GetFloats(fileName string) ([]float64, error) {
 | 
			
		||||
	var numbers []float64
 | 
			
		||||
	file, err := OpenFile(fileName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	defer CloseFile(file)
 | 
			
		||||
	scanner := bufio.NewScanner(file)
 | 
			
		||||
	for scanner.Scan() {
 | 
			
		||||
		number, err := strconv.ParseFloat(scanner.Text(), 64)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		numbers = append(numbers, number)
 | 
			
		||||
	}
 | 
			
		||||
	if scanner.Err() != nil {
 | 
			
		||||
		return nil, scanner.Err()
 | 
			
		||||
	}
 | 
			
		||||
	return numbers, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	numbers, err := GetFloats(os.Args[1])
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	var sum float64 = 0
 | 
			
		||||
	for _, number := range numbers {
 | 
			
		||||
		sum += number
 | 
			
		||||
	}
 | 
			
		||||
	fmt.Printf("Sum: %0.2f\n", sum)
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user