It seems that strings.split(" ") is not returning an array. I have no idea why this is. I'm sure I am using it in a similar context elsewhere.
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
var seedCost float64
var lawnNo int
var in string
var area float64
var wh []string
fmt.Scanln(&seedCost) //2 is inputted
fmt.Scanln(&lawnNo) //3
lawnCost := 0.00
for i := 0; i < lawnNo; i++ {
fmt.Scanln(&in) //2 3 is inputted
wh = strings.Split(in, " ")
fmt.Println(wh[0])
fmt.Println(wh[1]) //Test throwing exception, index out of range
w, _ := strconv.ParseFloat(wh[0], 64)
h, _ := strconv.ParseFloat(wh[1], 64) //EXCEPTIONAL LINE, index out of range
area = w * h
lawnCost += area * seedCost
}
ans := strconv.FormatFloat(lawnCost, 'E', 8, 64)
fmt.Println(ans)
}