arrays - Swift - 表达式解析为未使用的左值

标签 arrays swift

数组 stockPriceDate1..4 在整个代码中使用相同。获取最后两个条目的左值错误。是我的列表标点符号错了吗?

func sChart(chart: ShinobiChart!, dataPointAtIndex dataIndex: Int, forSeriesAtIndex seriesIndex: Int) -> SChartData! {
    return seriesIndex == 0 ?
        stockPriceData1[dataIndex]: 
        stockPriceData2[dataIndex]; 
        stockPriceData3[dataIndex];    <- Expression resolves error...
        stockPriceData4[dataIndex]     <- Expression resolves error...
}

最佳答案

让我们以不同的方式重写您的代码:

return seriesIndex == 0 ? stockPriceData1[dataIndex] : stockPriceData2[dataIndex]

let _ = stockPriceData3[dataIndex]
let _ = stockPriceData4[dataIndex]

请注意,返回值是 stockPriceData1stockPriceData2stockPriceData3stockPriceData4 的下两个下标将被忽略,因为您没有使用它们的结果。

代码绝对不是你想的那样。

如果您想使用seriesIndex 来获取正确的数据数组,您需要使用开关,例如

switch seriesIndex {
   case 0:
      return stockPriceData1[dataIndex]
   case 1:
      return stockPriceData2[dataIndex]
   case 2:
      return stockPriceData3[dataIndex]
   case 3:
      return stockPriceData4[dataIndex]
   default:
      return nil // should never happen
}

或者使用数组:

let data = [stockPriceData1, stockPriceData2, stockPriceData3, stockPriceData4]
return data[seriesIndex][dataIndex]

关于arrays - Swift - 表达式解析为未使用的左值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37507625/

相关文章:

java - 交换二维数组中的两个元素

c - 重写数组元素以及堆栈的结构和机制

arrays - 读取 CSV 文件并保存在二维数组中

java - 如何在 for 循环中将值存储在数组中?

php - 这种奇怪的 PHP 行为的原因是什么?

ios - 停止画外音说出 UIAccessibilityTrait 可调的自动提示(快速)

iOS 禁用突出显示的 ImageView

swift - 区分点击 UITableView 和以编程方式选择?

ios - 无法在最新 Xcode 版本的 Swift 中设置导航栏字体

iOS - 在 ImageView 上点击手势问题