元類型與類型的區別

元類型是指所有類型的類型。

元類型只能類型出現在類型標示位;

類型即能作為類型存在,出現在類型標示位;

也能作為變量存在,出現在元類型的變量位。

?

http://www.swift51.com/swift2.0/chapter3/03_Types.html#type_inheritance_clause

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Types.html#//apple_ref/swift/grammar/metatype-type

A metatype type refers to the type of any type, including class types, structure types, enumeration types, and protocol types.

The metatype of a class, structure, or enumeration type is the name of that type followed by?.Type. The metatype of a protocol type—not the concrete type that conforms to the protocol at runtime—is the name of that protocol followed by?.Protocol. For example, the metatype of the class type?SomeClass?is?SomeClass.Type?and the metatype of the protocol?SomeProtocol?is?SomeProtocol.Protocol.

You can use the postfix?self?expression to access a type as a value. For example,?SomeClass.self?returns?SomeClass?itself, not an instance of?SomeClass. And?SomeProtocol.self?returns?SomeProtocol?itself, not an instance of a type that conforms to?SomeProtocol?at runtime. You can call the?type(of:)?function with an instance of a type to access that instance’s dynamic, runtime type as a value, as the following example shows:

元類型

元類型是指所有類型的類型,包括類、結構體、枚舉和協議。

類、結構體或枚舉類型的元類型是相應的類型名緊跟.Type。協議類型的元類型——并不是運行時遵循該協議的具體類型——是該協議名字緊跟.Protocol。比如,類SomeClass的元類型就是SomeClass.Type,協議SomeProtocol的元類型就是SomeProtocal.Protocol

你可以使用后綴self表達式來獲取類型。比如,SomeClass.self返回SomeClass本身,而不是SomeClass的一個實例。同樣,SomeProtocol.self返回SomeProtocol本身,而不是運行時遵循SomeProtocol的某個類型的實例。還可以對類型的實例使用dynamicType表達式來獲取該實例在運行階段的類型,如下所示:

可以使用恒等運算符(===和?!==)來測試一個實例的運行時類型和它的編譯時類型是否一致。

可以使用初始化表達式從某個類型的元類型構造出一個該類型的實例。對于類實例,必須使用?required關鍵字標記被調用的構造器,或者使用?final?關鍵字標記整個類。

元(Metatype)類型語法
元類型?→?類型?.?Type?|?類型?.?Protocol

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390364.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390364.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390364.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

css 動畫使用_如何在CSS中使用動畫

css 動畫使用使用CSS動畫 (Using CSS Animations) CSS animations add beauty to the webpages and make transitions from one CSS style to the other beautiful.CSS動畫可以使網頁更加美觀,并可以從一種CSS樣式過渡到另一種CSS樣式。 To create a CSS animation…

第01章—快速構建

spring boot 系列學習記錄:http://www.cnblogs.com/jinxiaohang/p/8111057.html 碼云源碼地址:https://gitee.com/jinxiaohang/springboot 一、Spring Initializr 使用教程 (IntelliJ IDEA) 具體步驟: 1、打開IDEA &am…

看板和scrum_看板VS Scrum-如何變得敏捷

看板和scrumScrum and Kanban are the two most popular project management techniques today in business. As a developer, I think its important to understand these processes as you will likely be heavily involved in them if you are part of a team. By understan…

JS之Promise

開胃菜,先做如下思考: Promise 有幾種狀態?Promise 狀態之間可以轉化嗎?Promise 中的異常可以被 try...catch 捕獲嗎?Promise前世 callback hell 大家都知道JS是異步操作(執行)的,在…

魚眼鏡頭的distortion校正【matlab】

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 作者:WWC %%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 功能:畸變矯正 clc; clear; close all; %% 讀取圖像 Aimread(D:\文件及下載相關\圖片\distortion2.jpg)…

web后端開發學習路線_學習后端Web開發的最佳方法

web后端開發學習路線My previous article described how you can get into frontend development. It also discussed how the front end can be a place filled with landmines – step in the wrong place and youll be overwhelmed by the many frameworks of the JavaScrip…

C# 使用WinApi操作剪切板Clipboard

前言: 最近正好寫一個程序,需要操作剪切板 功能很簡單,只需要從剪切板內讀取字符串,然后清空剪切板,然后再把字符串導入剪切板 我想當然的使用我最拿手的C#來完成這項工作,原因無他,因為.Net框架…

聊聊spring cloud gateway的XForwardedHeadersFilter

序 本文主要研究spring cloud gateway的XForwardedHeadersFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC1-sources.jar!/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java Configuration ConditionalOnProperty(name "sp…

node緩沖區_Node.js緩沖區介紹

node緩沖區什么是緩沖液? (What are Buffers?) Binary is simply a set or a collection of 1 and 0. Each number in a binary, each 1 and 0 in a set are called a bit. Computer converts the data to this binary format to store and perform operations. Fo…

專訪趙加雨:WebRTC在網易云信的落地

去年的這個時候,在市面上公開表示使用WebRTC的公司還沒幾家,但2018年以來,宣布采用或支持WebRTC的公司已經越來越多。實時音視頻提供商網易云信也在自研的NRTC中集成了WebRTC。在他們眼里,2017年是WebRTC的轉折之年,而…

html/css雜題

1、css選擇器:詳細(http://www.ruanyifeng.com/blog/2009/03/css_selectors.html) 派生選擇器:按標簽 類別選擇器:按class ID選擇器:按ID 通用選擇器:* 匹配所有 屬性選擇器:按屬性&…

黑客馬拉松 招募_我如何贏得第一次黑客馬拉松-研究,設計和編碼的2個狂野日子

黑客馬拉松 招募I had no coding or engineering background. I studied biology in college, with no clue about what to do with my degree. 我沒有編碼或工程背景。 我在大學學習生物學,但不知道如何處理我的學位。 My first jobs were making cold calls in s…

1、Linux命令隨筆

1 Linux命令總結2 3 man 命令幫助;4 help 命令的幫助(bash的內置命令);5 ls list,查看目錄列表;6 -ld:查看目錄權限;7 -l:(long)長格式顯示屬性;8 -F:給不同的文件類型結尾加標識9 -p:給目錄加斜線10 …

1137. 第 N 個泰波那契數

泰波那契序列 Tn 定義如下: T0 0, T1 1, T2 1, 且在 n > 0 的條件下 Tn3 Tn Tn1 Tn2 給你整數 n,請返回第 n 個泰波那契數 Tn 的值。 示例 1: 輸入:n 4 輸出:4 解釋: T_3 0 1 1 2 T_4 1…

web圖像_Web圖像優化的基本介紹

web圖像Images are an essential ingredient of most websites. The visual quality of pictures has a direct impact on the brand image and the message those images convey. And the weight of images usually accounts for a 40-60% of the data transferred on the web…

ElasticSearch客戶端注解使用介紹

The best elasticsearch highlevel java rest api-----bboss 1.ElasticSearch客戶端bboss提供了一系列注解 ESId 用于標識實體對象中作為docid的屬性,該注解只有一個persistent 布爾值屬性,用于控制被本注解標注的字段屬性是否作為普通文檔屬性保存&am…

5827. 檢查操作是否合法

給你一個下標從 0 開始的 8 x 8 網格 board ,其中 board[r][c] 表示游戲棋盤上的格子 (r, c) 。棋盤上空格用 ‘.’ 表示,白色格子用 ‘W’ 表示,黑色格子用 ‘B’ 表示。 游戲中每次操作步驟為:選擇一個空格子,將它變…

團隊的遠程管理_遠程團隊指南:如何管理您的遠程軟件開發團隊

團隊的遠程管理Guides to help you work remotely seem to have swept through the Internet these days. 這些天來,幫助您遠程工作的指南似乎席卷了Internet。 Do this, avoid that, stay productive, and all those run-of-the-mill tips we’ve already tried o…

JS 正則 錢

function ValidateIsDecial(sValue) {return (!sValue && !!!sValue && /^[0-9]{1,10}(\.[0-9]{0,2})?$/.test(sValue)); };驗證 decimal(12,2) 小數點前允許10位,小數點后允許2位 1234567890 true 12345678901 false 0123456789 true 01234567891 false 123.…

5193. 刪除字符使字符串變好

5193. 刪除字符使字符串變好 一個字符串如果沒有 三個連續 相同字符,那么它就是一個 好字符串 。 給你一個字符串 s ,請你從 s 刪除 最少 的字符,使它變成一個 好字符串 。 請你返回刪除后的字符串。題目數據保證答案總是 唯一的 。 示例 …