where
今日はwhereフェスティバルについて説明します.
where節の用途は大体2種類あります.モード追加条件 と組み合わせるタイプ制限 を追加
入力された
入力したpointの最初の要素が1ではないことを示します.
では、次のコードが正常に動作しているかどうかを見てみましょう.
Extensionプロトコルを遵守するタイプでは、
上記のコードは、
では、
where寺を知りました.
上記の例に加えて、whereセクションも多く使用できるようです.
上記の例は非常に基本的な部分のようですが、whereセクションを使用すると、より多くの例を追加します.
じゃ、お先に失礼します.👋
お寺
where
節は、特定のモードの追加条件を組み合わせる役割を果たす.where節の用途は大体2種類あります.
パターンの結合による条件の追加
func printPoint(_ point: (Int, Int)) {
switch point {
case (0,0):
print("(0,0) is at the origin")
case (-2...2, -2...2) where point.0 != 1:
print("(\(point.0), \(point.1)) is near the origin")
default:
print("The piont is at (\(point.0), \(point.1))")
}
}
where
節は、上述した表現パターンと組み合わせることができる.case (-2...2, -2...2) where point.0 != 1:
見てみましょう.case (-2...2, -2...2)
はよく知っています.入力された
point
は、いずれも−2〜2のcaseである.where point.0 != 1
って何ですか?!入力したpointの最初の要素が1ではないことを示します.
では、次のコードが正常に動作しているかどうかを見てみましょう.
let origin = (0, 0)
printPoint(origin)
let point = (1, 2)
printPoint(point)
let lastPoint = (2, 1)
printPoint(lastPoint)
// 결과
(0,0) is at the origin
The piont is at (1, 2)
(2, 1) is near the origin
(2,1)点を過ぎて、私たちが望むように出力しました.タイプの拘束を追加
where
節では、タイプに制約を追加できます.protocol ProtocolName where Self: UIViewController {
...
}
このように、where
節は、プロトコル拡張において、拡張が特定のプロトコルを遵守するタイプにのみ適用されることを制限することができる.Extensionプロトコルを遵守するタイプでは、
where
節以降のプロトコルも、Extensionプロトコルを遵守するタイプのみがExtensionを適用できることを制限します.上記のコードは、
ProtocolName
がUIViewController
を遵守するためにのみ使用したいタイプです.Q.コードの深さを減らすテクニック🌟。swiftのwhereセクションを探してください。
String extension
は、以下のコードで実装され、上記の問題が発生しました.extension String{
var isNotValidate: Bool {
let validateAddressPrefix = ["https://", "http://"]
for validate in validateAddressPrefix {
if self.hasPrefix(validate) {
return true
}
}
return false
}
}
上記のコードは、文字列がhttps://
またはhttp://
で始まることを理解するコードである.では、
where
節を使用してコードの深さを低減します.extension String {
var isNotValidate: Bool {
let validateAddressPrefix = ["https://", "http://"]
for validate in validateAddressPrefix where self.hasPrefix(validate) {
return true
}
return false
}
}
for validate in validateAddressPrefix where self.hasPrefix(validate)
構文でコードの深さを減らしました.の最後の部分
where寺を知りました.
上記の例に加えて、whereセクションも多く使用できるようです.
上記の例は非常に基本的な部分のようですが、whereセクションを使用すると、より多くの例を追加します.
じゃ、お先に失礼します.👋
Reference
この問題について(where), 我々は、より多くの情報をここで見つけました https://velog.io/@wonhee010/Whereテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol