我能够使用for ... in
函数在Swift中为两个变量实现zip()
循环:
for (i, j) in zip(1...number, 2...number + 1)
现在,我正在尝试使用for ... in
在Swift中为三个变量实现一个zip()
循环,但是它给出了错误:
for (i, j, k) in zip(1...number, 2...number + 1, 3...number + 2)
使用zip时出现的错误:
main.swift:8:51:错误:调用中有其他参数 for zip(1 ... number,2 ... number + 1,1,3 ... number + 2)中的(i,j,k)
我也尝试省略了zip()
函数,但是仍然出现错误:
for (i, j, k) in (1...number, 2...number + 1, 3...number + 2)
在不使用zip()
的情况下出现的错误:
main.swift:8:18:错误:类型'((ClosedRange,ClosedRange,ClosedRange)''不符合协议'Sequence' 在(1 ...数字,2 ...数字+ 1、3 ...数字+ 2)中的(i,j,k)
我该如何解决?
答案 0 :(得分:2)
eval.h
int eval(player p)
{
int score=0;
/*.....*/
if(p.featureA) score+=bonusA;
if(p.featureB) score+=bonusA;
if(p.featureM) score+=bonusM[p.featureM.type];
/*......*/
return score;
}
不适用于2个以上的参数。
func zip(_ sequence1:Sequence1,_ sequence2: Sequence2)-> Zip2Sequence,其中Sequence1: 序列,序列2:序列
您需要组合多个eval_params.h
int bonusA=somevaluea;
int bonusB=somevlaueb;
MyEnumType bonusM[]={/*......*/};
TUNE(bonusA,bonusB,MyEnumType);
才能使它正常工作。
示例:
zip(_:_:)