swift 对于ループの中でや继续突破を使用しているのを,过滤に书き换える

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 对于ループの中でや继续突破を使用しているのを,过滤に书き换える相关的知识,希望对你有一定的参考价值。

let array = [0, 2, 0, 2, 2, 1, 2, 2]

var map = [Int]()
for i in array {
	if i == 2 {
		map.append(i)
	} else if i == 1 {
		break
	} else {
		continue
	}
}
print(map) // [2, 2, 2]
let array = [0, 2, 0, 2, 2, 1, 2, 2]

// flatMap({$0})を入れないと、コンパイルエラー
// AnySequenceとArrayで同じprefix()メソッドがあり、どちらを使用するのかが曖昧のため、コンパイルエラーになる
let map = array.prefix(while: {$0 != 1}).flatMap({$0}).filter( {$0 == 2} )
print(map) // [2, 2, 2]

// filterの中で何かして、結果に反映するかの判断するには、このようにすることができる
// つまり、continueを使用していたところは、return falseにすることができる
let map = array.prefix(while: {$0 != 1}).flatMap({$0}).filter( {
	if $0 == 2 {
		return true
	} else {
		return false
	}
} )
print(map) // [2, 2, 2]

以上是关于swift 对于ループの中でや继续突破を使用しているのを,过滤に书き换える的主要内容,如果未能解决你的问题,请参考以下文章

EXIT,CONTINUE,CHECK(ロープの終了)

python aud取し取得した音量をOSCを使ってデータを送る.2つのマイクをコールバック关数にIDを返すことで识别している。

csharp 图片框の中で余白を考虑して计算

ruby 缲り返し处理の中でカウンターを使う,カウンターの初期値を指定する

scss 170919菜单内の修复しているnavをスクロール

sh あるキーワードを含むファイル,を使用しているファイルを検索する