Sfoglia il codice sorgente

Replace if with switch in URLEncoding (#3214)

dirtmelon 5 anni fa
parent
commit
a57387a4b2
1 ha cambiato i file con 9 aggiunte e 10 eliminazioni
  1. 9 10
      Source/ParameterEncoding.swift

+ 9 - 10
Source/ParameterEncoding.swift

@@ -187,27 +187,26 @@ public struct URLEncoding: ParameterEncoding {
     /// - Returns: The percent-escaped, URL encoded query string components.
     public func queryComponents(fromKey key: String, value: Any) -> [(String, String)] {
         var components: [(String, String)] = []
-
-        if let dictionary = value as? [String: Any] {
+        switch value {
+        case let dictionary as [String: Any]:
             for (nestedKey, value) in dictionary {
                 components += queryComponents(fromKey: "\(key)[\(nestedKey)]", value: value)
             }
-        } else if let array = value as? [Any] {
+        case let array as [Any]:
             for value in array {
                 components += queryComponents(fromKey: arrayEncoding.encode(key: key), value: value)
             }
-        } else if let value = value as? NSNumber {
-            if value.isBool {
-                components.append((escape(key), escape(boolEncoding.encode(value: value.boolValue))))
+        case let number as NSNumber:
+            if number.isBool {
+                components.append((escape(key), escape(boolEncoding.encode(value: number.boolValue))))
             } else {
-                components.append((escape(key), escape("\(value)")))
+                components.append((escape(key), escape("\(number)")))
             }
-        } else if let bool = value as? Bool {
+        case let bool as Bool:
             components.append((escape(key), escape(boolEncoding.encode(value: bool))))
-        } else {
+        default:
             components.append((escape(key), escape("\(value)")))
         }
-
         return components
     }