Как настроить массив в Swift - PullRequest
0 голосов
/ 09 ноября 2019

Я изо всех сил пытаюсь найти правильный способ установить массив путевых точек в двухмерной плоскости. В качестве примера:

Точка 1: х = 2,3, у = 4,5

Точка 2: х = 3,1, у = 5,0

...

Точка 83: x = 25,3, y = 83,1

Я хотел бы иметь возможность циклически перемещаться по массиву точек (например: для точек с 10 по 25 переместите координату x на 3 вправо), и отозвать одну точку (каковы координаты точки 42?).

Это действительно легко в VisualBasic (dim wayPoints (Double) как Double), но пройдя быстрое документированиеЯ никуда не денусь. Синтаксис массивов выглядит намного сложнее.

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 09 ноября 2019

Вы можете использовать структуру для этого.

struct Point {
    var x: Double = 0.0
    var y: Double = 0.0
}

// Create an instance of the point struct
var myPoint = Point(x: 2.5, y: 6.7)

// You can also create an array of Point structs
var points: [Point] = [Point(x: 3.4, y: 8.5)]

Вы можете циклически перемещаться по массиву и вносить любые необходимые изменения. Как указал Лео Дабус , вы не можете изменить struct непосредственно в цикле for, поэтому вам необходимо получить доступ к массиву по индексам. Например:

for index in points.indices {
    points[index].x += 30 // This adds 30 to the x coordinate of each point in the array
}

Вы можете получить доступ к любой точке массива с индексом индекса.

var selectedPoint = points[4] // This returns a single Point object

Вы также можете создать новый массив, используя диапазон, если хотите.

var rangeOfPoints = points[0...4] // This returns a new array of Points with 5 items
...