[英]How to compare types in Swift?
我在 Swift 文件中聲明了兩個變量,其值如下:
let m = 1
let n = 2
現在,我想比較它們的類型:
type(of: m) === type(of: n)
出現以下編譯錯誤:
Argument type 'String.Type' expected to be an instance of a class or class-constrained type
有沒有辦法比較類型?
另外,為什么這條線會失敗?
String === String
===
運算符只為引用類型定義,因為它檢查引用(指針)是否相等,所以你不能在值類型的元類型上使用它。
但是,您可以使用正常的相等運算符==
。
type(of: m) == type(of: n)
至於String === String
,那甚至不是有效的代碼。 如果String.self == String.self
你需要什么。 您可以使用TypeName.self
訪問元類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.