2014-12-31 16 views
6

Nhanh chóng, trong một vòng lặp được quản lý bởi giá trị chỉ mục lặp lại, tôi muốn tạo biến có tên biến là kết nối của "person_" và chỉ mục vòng lặp hiện tại.Tạo một biến nhanh chóng với tên động

Vì vậy, vòng lặp của tôi kết thúc lên tạo biến như:

var person_0 = ... 
var person_1 = ... 
var person_2 = ... 
etc... 

Tôi không có may mắn tìm kiếm trực tuyến để gửi bài ở đây.

Cảm ơn!

+5

Đây là thực tế không tốt. Có thể có những giải pháp tốt hơn để đạt được những gì bạn đang cố gắng làm. Nếu bạn cung cấp thêm ngữ cảnh, tôi có thể giúp bạn. – David

Trả lời

1

tên let = "_ người \ (index)"

sau đó thêm tên cho một mảng có thể thay đổi khai báo trước khi vòng lặp.

Điều gì đó tương tự?

0

Điều bạn đang cố gắng làm là không thể nhanh chóng. Tên biến chỉ dành cho con người (Đặc biệt là trong một ngôn ngữ biên dịch), có nghĩa là chúng bị tước trong giai đoạn biên dịch.

NHƯNG nếu bạn thực sự thực sự muốn làm điều này, công cụ tạo mã là cách để thực hiện. Tìm một công cụ tạo mã thích hợp, chạy nó trong giai đoạn xây dựng.

3

Một giải pháp là lưu trữ tất cả các biến của bạn trong một mảng. Các chỉ mục cho các biến bạn lưu trữ trong mảng đó sẽ tương ứng với các giá trị chỉ mục mà bạn đang cố gắng bao gồm trong tên biến.

Tạo một biến Ví dụ ở trên cùng của bộ điều khiển xem của bạn:

var people = [WhateverTypePersonIs]()

Sau đó tạo một vòng lặp sẽ lưu trữ tuy nhiên nhiều người mà bạn muốn ở chỗ biến Ví dụ:

for var i = 0; i < someVariable; i++ { 
    let person = // someValue of type WhateverTypePersonIs 
    people.append(person) 
} 

Nếu bạn cần phải có được những gì sẽ là "person_2" với cách bạn đang cố gắng giải quyết vấn đề của bạn, ví dụ, bạn có thể truy cập người đó bằng cách sử dụng people[2].

0

Trong Swift, bạn không thể tạo tên biến động. Những gì bạn đang cố gắng đạt được là trường hợp sử dụng điển hình cho một số Array.

Tạo Array và điền dữ liệu đó với dữ liệu người của bạn. Sau đó, bạn có thể truy cập vào những người thông qua chỉ mục của nó:

var persons: [String] = [] 

// fill the array 
for i in 0..<10 { 
    persons.append("Person \(i)") 
} 

// access person with index 3 (indexes start with 0 so this is the 4th person) 
println(persons[3]) // prints "Person 3" 
Các vấn đề liên quan