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

5lhxktic  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(97)

首先,我说我对Go语言相当陌生。
我的程序接受一个CSV,并将每行作为[]字符串读取,然后将它们全部添加到一个切片中。程序的另一部分应该向切片中添加另一个包含新信息的条目,但我不知道如何将新条目声明为类型[]string。如果它尝试使用结构体,则代码,[]Customer类型与[]string类型不兼容。如果我在开始时将[]string切片转换为类型[]Customer,我失去了使用时间的功能。解析每个条目的某些部分。我无法将新条目声明为类型[]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)
}

字符串
时间的代码。解析功能和更新[]字符串的一列。

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")
        }
    }
}


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

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


当我运行这个程序并使用代码向CSV添加新行时,我得到的错误是

syntax error: unexpected {, expected expression

zzzyeukh

zzzyeukh1#

复合文本缺少类型。像这样添加类型:

var newCust []string = []string{"1500", "Your Name", "Make Model", "City", "date1", "date2", "date3", "date4"}

字符串
注意第二个[]string
不需要重复类型。使用以下代码:

var newCust = []string{"1500", "Your Name", "Make Model", "City", "date1", "date2", "date3", "date4"}


或者更短:

newCust := []string{"1500", "Your Name", "Make Model", "City", "date1", "date2", "date3", "date4"}

相关问题