我想写swift并想要这样的结果
func isOdd(getArray: [Int]) -> Bool{
for i in getArray{
if getArray[i] % 2 == 0{
return true
}else{
return false
}
}
}
let test1 = [2,4,6,8]
isOdd(test1)
预期结果:
答案 0 :(得分:7)
你需要使用模运算符if(linkView==null){
LayoutInflater inflater=getLayoutInflater();
linkView=inflater.inflate(R.layout.cardview_link, null);
ogTitle = (TextView) linkView.findViewById(R.id.title_link);
ogDecription = (TextView) linkView.findViewById(R.id.description_link);
ogUrl = (TextView) linkView.findViewById(R. id.url_link);
ogImage = (ImageView) linkView.findViewById(R.id.thumbnail_link);
view.addView(linkView);
}
ogTitle.setText(strings.get(0));
Glide.with(getApplicationContext()).load(strings.get(1)).into(ogImage);
ogDecription.setText(strings.get(2));
ogUrl.setText(strings.get(3));
super.onPostExecute(strings);}
检查你的整数除以2的余数是否不等于零:
%
然后你必须检查你的数组是否包含偶数元素(不是奇数)。您可以通过扩展元素为extension Integer {
var isOdd: Bool { return self % 2 != 0 }
}
0.isOdd // false
1.isOdd // true
2.isOdd // false
3.isOdd // true
4.isOdd // false
的数组来实现,如下所示:
Integer
用法:
extension Array where Element: Integer {
var allOdds: Bool {
return !contains{ !$0.isOdd }
}
}
答案 1 :(得分:3)
您的原始代码已关闭,但在检查整个阵列之前,您不想返回true
:
func isOdd(getArray: [Int]) -> Bool{
for i in getArray{
if i % 2 == 0 {
return false
}
}
return true
}
简单for in
循环优于map
或reduce
的优势在于,只要找到第一个偶数而不是遍历整个数组,就可以返回。
答案 2 :(得分:3)
很短:
func isOdd(_ array: [Int]) -> Bool {
return !array.contains {($0 % 2) == 0 }
}