在 Go 中创建 []string 类型的 var

Mic*_*ebo 2 csv go

首先说我对 Go 语言相当陌生。

我的程序采用 CSV 并将每一行作为 [] 字符串读取,并将它们全部添加到切片中。程序的另一部分应该向包含新信息的切片添加另一个条目,但我不知道如何将新条目声明为类型 []string。如果它尝试使用结构、代码、[]Customer 类型与 []string 类型不兼容。如果我在开始时将 []string 切片转换为 []Customer 类型,我将失去能够在每个条目的某些部分使用 time.Parse 的功能。我无法将新条目声明为类型 []string。有什么办法可以做到这一点吗?用于读取 CSV 并添加到 []string 类型的切片的代码。

var customerInfo [][]string

for {
    record, err := reader.Read()
    if err == io.EOF {
        break
    }
    if err != nil {
        panic(err)
    }
    customerInfo = append(customerInfo, record)
}
Run Code Online (Sandbox Code Playgroud)

time.Parse 功能和更新 [] 字符串的一列的代码。

today := time.Now()
for i, e := range customerInfo {
    if i > 0 {
        lastOilChange, err := time.Parse("2006-01-02", e[4])
        if err != nil {
            panic(err)
        }
        diff := today.Sub(lastOilChange)
        diffInMonths := float64(diff.Hours() / 24 / 30)
        if diffInMonths > 6 {
            e[6] = today.Format("2006-01-02")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

用于向 CSV 添加新行的代码(目前唯一不工作的部分)

var newCust []string = {"1500", "Your Name", "Make Model", "City", "date1", "date2", "date3", "date4"}
customerInfo = append(customerInfo, newCust)
Run Code Online (Sandbox Code Playgroud)

当我使用向 CSV 添加新行的代码运行此程序时遇到的错误是

syntax error: unexpected {, expected expression
Run Code Online (Sandbox Code Playgroud)

Jas*_*dem 5

复合文字缺少类型。添加这样的类型:

var newCust []string = []string{"1500", "Your Name", "Make Model", "City", "date1", "date2", "date3", "date4"}
Run Code Online (Sandbox Code Playgroud)

注意第二个[]string

无需重复类型。使用此代码:

var newCust = []string{"1500", "Your Name", "Make Model", "City", "date1", "date2", "date3", "date4"}
Run Code Online (Sandbox Code Playgroud)

甚至更

newCust := []string{"1500", "Your Name", "Make Model", "City", "date1", "date2", "date3", "date4"}
Run Code Online (Sandbox Code Playgroud)