gpt4 book ai didi

ios - 如何重构此代码,以便在Swift中变量之间仅共享某些属性

转载 作者:行者123 更新时间:2023-12-01 21:51:56 25 4
gpt4 key购买 nike

我才刚刚开始学习敏捷,并想创建一个显示一些数据的简单图表。

我正在使用AnyChart库创建折线图,并且在图表上绘制了一系列折线。我注意到我重复了几乎所有的属性。如何使下面的代码干燥。

我正在使用AnyChart库创建折线图,并且在图表上绘制了一系列折线。我注意到我重复了几乎所有的属性,唯一更改的是初始变量名。

我怎样才能减少代码的产生,而将完整的变量名考虑在内(系列1,系列2)?

let series1Mapping = set.mapAs(mapping: "{x: 'x', value: 'value'}")        
let series2Mapping = set.mapAs(mapping: "{x: 'x', value: 'value2'}")

let series1 = chart.line(data: series1Mapping)
let series2 = chart.line(data: series2Mapping)


series1.name(name: data.seriesNames[0])
series1.hovered().markers().enabled(enabled: true)
series1.hovered().markers()
.type(type: anychart.enums.MarkerType.CIRCLE)
.size(size: 4)
series1.tooltip()
.position(position: data.position)
.anchor(anchor: anychart.enums.Anchor.LEFT_CENTER)
.offsetX(offset: 5)
.offsetY(offset: 5)

series2.name(name: data.seriesNames[1])
series2.hovered().markers().enabled(enabled: true)
series2.hovered().markers()
.type(type: anychart.enums.MarkerType.CIRCLE)
.size(size: 4)
series2.tooltip()
.position(position: data.position)
.anchor(anchor: anychart.enums.Anchor.LEFT_CENTER)
.offsetX(offset: 5)
.offsetY(offset: 5)

最佳答案

您可以这样操作。这只是一个粗略的主意...我不知道您正在执行的Series对象和映射是什么...但是您可以使用一个函数来返回Series并获取创建该Series的参数

 func getSeries(number:Int, mapping:String) -> Series {

let series = chart.line(data: set.mapAs(mapping: mapping))

series.name(name: data.seriesNames[number])
series.hovered().markers().enabled(enabled: true)
series.hovered().markers()
.type(type: anychart.enums.MarkerType.CIRCLE)
.size(size: 4)
series.tooltip()
.position(position: data.position)
.anchor(anchor: anychart.enums.Anchor.LEFT_CENTER)
.offsetX(offset: 5)
.offsetY(offset: 5)

return series

}

然后创建系列
  let series1 = getSeries(number:0 , mapping:"{x: 'x', value: 'value'}")
let series2 = getSeries(number:1 , mapping:"{x: 'x', value: 'value2'}")

如果您想使其更简单...也可以从数字创建映射字符串

谢谢

关于ios - 如何重构此代码,以便在Swift中变量之间仅共享某些属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61533618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com