Из C99 Standard (акцент мой)
6.5.3.4/2
Оператор sizeof дает размер (в байты) его операнда, который может быть выражением или заключенным в скобки именем типа. Размер определяется по типу операнда. Результат - целое число. Если тип операнда - тип массива переменной длины, то операнд оценивается; в противном случае операнд не оценивается, а результат является целочисленной константой.
Возможно, что разбиение на новые строки, где все содержимое строки, на которую нужно разделить, это новые строки, является дорогостоящей операцией.
target := strings.Split(Target[0], "\n")
Если вы хотите разбить символы новой строки, рассмотрите возможность использования bufio.Scanner
вместо
scanner := bufio.NewScanner(strings.NewReader("foo\nbar\nbaz"))
for scanner.Scan() {
fmt.Println(scanner.Text())
}
Это происходит потому, что сканер переходит к следующий токен при вызове scan, тогда как strings.Split
обрабатывает всю полезную нагрузку сразу.