gpt4 book ai didi

c - 范围问题 : double array not accessible in if statement

转载 作者:行者123 更新时间:2023-11-30 14:21:13 25 4
gpt4 key购买 nike

我有一个类方法,它应该接受一个对象并填充一些值。目前处于功能演示阶段,后续实现会更好。现在我只想让它发挥作用。

在下面的代码中,districtID 整数已成功传递给 if 语句。 rgb double 组不会进入 if 语句范围。初始化时设置的值使其一直到达 DistrictPoint.color,而无需在 if 语句内进行设置。

下面的代码不会按原样编译。我想知道如何让 rgb 变量在 if 语句范围内可见。

(注意:我尝试了在 if 语句中初始化变量的简单解决方案。这会清除错误,但不会让新的 rgb 变量超出 if 范围)

// This method populates properties
+(void)setContantPropertiesForID:(DistrictPoint *)districtPoint
{
int districtID = [districtPoint.districtID intValue];
double rgb[3] = {0,0,0};

if (districtID == 1) {
districtPoint.title = @"District 1";
rgb = {1.0,0.0,0.0}; // error is expected expression
} else if (districtID == 2) {
districtPoint.title = @"District 1";
rgb = {0.0,1.0,0.0};
} else if (districtID == 3) {
districtPoint.title = @"District 1";
rgb = {0.0,0.0,1.0};
} else {
districtPoint.title = nil;
rgb = {1.0,1.0,1.0}; // error condition
}

districtPoint.color = [UIColor colorWithRed:rgb[0] green:rgb[1] blue:rgb[2] alpha:0.5];
}

最佳答案

这与if语句无关。仅在初始化时才可以使用大括号表示法来设置数组的元素(事实上,正如您在代码前面所做的那样)。

关于c - 范围问题 : double array not accessible in if statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14866991/

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