在Golang for循环中通过索引构造变量名的最有效方法

时间:2018-08-30 18:40:36

标签: for-loop go

Golang的新手。如果我想通过索引使用forloop构造10个不同的变量(下面的示例),那么连接索引和变量名的最有效方法是什么?显然,以下方法是不正确的。

...
self.downloadDelegate = [[SessionDownloadDelegate alloc] init];
downloadDelegate.notification = notification

//Now use the downloadDelegate instead of self
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:downloadDelegate delegateQueue:nil];
...

@interface SessionDownloadDelegate: NSObject<NSURLSessionDownloadDelegate>
    @property (strong, nonatomic) NSObject *notification;
@end

@implementation SessionDownloadDelegate
- (void)URLSession:(nonnull NSURLSession *)session downloadTask:(nonnull NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(nonnull NSURL *)location {
//    access the notification object
//    self.notification
}
@end

1 个答案:

答案 0 :(得分:2)

您正在寻找slices

users := make([]User, 10)
for i := 0; i < 10; i++ {
    users[i] = CreateUser(fmt.Sprintf("user_num_%d", i))
    bytes, err := json.Marshal(users[i])
    // TODO: handle err
    fmt.Printf("OK: user[%d] = %s\n", i, string(bytes))
}

像它们的基础array结构一样,切片使您可以存储项目的有序序列,并按其索引对其进行引用。