我正在尝试从 .txt 文件读取记录并将它们存储为结构集合,但我正在努力修复此错误:
"Missing argument for parameter 'year' in call
这是我的代码:
struct DataSet: CustomStringConvertible {
var year: Int
var month: Int
var tmax: Double
var tmin: Double
var airfrost: Int
var rain: Double
var sun: Double
var description: String {
return "\(year) + \(month) + \(tmax) + \(tmin) + \(airfrost) + \(rain) + \(sun)"
}
}
let path = "/Users/sc16hsm/Desktop/CW2/data/bradford.txt"
var data = [DataSet]()
var temp = DataSet()
if let contents = try? String(contentsOfFile: path) {
let filtered = contents.components(separatedBy: "\n")
for line in filtered {
let x = line.components(separatedBy: " ").filter{$0 != ""}
let x = line.components(separatedBy: " ")
temp.year = Int(x[0])
temp.month = Int(x[1])
temp.tmax = Double(x[2])
temp.tmin = Double(x[3])
temp.airfront = Int(x[4])
temp.rain = Double(x[5])
temp.sun = Double(x[6])
data.append(temp)
print(x)
}
任何帮助将不胜感激。
最佳答案
如果结构体的成员没有初始值,则必须使用成员初始化器。默认初始化程序不起作用。
你必须在循环内编写
let temp = DataSet(year: Int(x[0])!,
month: Int(x[1])!,
tmax: Double(x[2])!,
tmin: Double(x[3])!,
airfrost: Int(x[4])!,
rain: Double(x[5])!,
sun: Double(x[6])!)
data.append(temp)
请使用代码完成来获取完整的语法。
关于swift - 数组错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48988700/