日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Swift 枚舉類型,你知道幾個?

來源: 責編: 時間:2024-01-18 17:40:51 279觀看
導讀本文我們將介紹在 Swift 中如何定義枚舉、遍歷枚舉、枚舉原始值、枚舉關聯值等相關的內容。如果你尚未安裝 Xcode 和配置 Swift 開發環境,請您先閱讀這篇文章。接下來,我們啟動 Xcode,然后選擇 "File" > "New" > "Playgr

本文我們將介紹在 Swift 中如何定義枚舉、遍歷枚舉、枚舉原始值、枚舉關聯值等相關的內容。如果你尚未安裝 Xcode 和配置 Swift 開發環境,請您先閱讀這篇文章。Dz928資訊網——每日最新資訊28at.com

接下來,我們啟動 Xcode,然后選擇 "File" > "New" > "Playground"。創建一個新的 Playground 并命名為 "Enumerations"。Dz928資訊網——每日最新資訊28at.com

在 Swift 中,枚舉(Enum)是一種特殊的數據類型,它允許你定義一組相關的值。這些值是你在程序中會用到的一些具體選項。Dz928資訊網——每日最新資訊28at.com

定義一個枚舉

在 Swift 中,我們使用 enum 關鍵字定義一個枚舉,在枚舉體內使用 case 關鍵字定義不同的情況,每個情況表示枚舉的一個成員。Dz928資訊網——每日最新資訊28at.com

Swift CodeDz928資訊網——每日最新資訊28at.com

enum Color {    case red    case green    case blue}let greenColor = Color.greenprint(greenColor)// Output: green

在以上代碼中,我們定義了一個名為 Color 的枚舉,包含了三種顏色。Dz928資訊網——每日最新資訊28at.com

TypeScript CodeDz928資訊網——每日最新資訊28at.com

enum Color {    Red,    Green,    Blue}let color: Color = Color.Green;console.log(color);// Output: 1

使用 switch 處理枚舉

有了 Color 枚舉后,我們可以使用 switch 語句來處理枚舉。Dz928資訊網——每日最新資訊28at.com

Swift CodeDz928資訊網——每日最新資訊28at.com

enum Color {    case red    case green    case blue}func describeColor(color: Color) {    switch color {    case .red:        print("Color is red.")    case .green:        print("Color is green.")    case .blue:        print("Color is blue.")    }}describeColor(color: .blue)// Output: Color is blue.

TypeScript CodeDz928資訊網——每日最新資訊28at.com

enum Color {    Red,    Green,    Blue}function describeColor(color: Color): void {    switch (color) {        case Color.Red:            console.log("Color is red.");            break;        case Color.Green:            console.log("Color is green.");            break;        case Color.Blue:            console.log("Color is blue.");            break;    }}describeColor(Color.Blue);// Output: "Color is blue."

遍歷枚舉的成員

在 Swift 中,我們可以使用 CaseIterable 協議來使枚舉遵循可迭代的協議,從而實現對枚舉成員的遍歷。Dz928資訊網——每日最新資訊28at.com

Swift CodeDz928資訊網——每日最新資訊28at.com

enum Color: CaseIterable {    case red, green, blue}for color in Color.allCases {    print(color)}/**Output: redgreenblue*/

在上面的代碼中,我們讓 Color 枚舉遵循 CaseIterable 協議,以便枚舉該枚舉的所有成員。Dz928資訊網——每日最新資訊28at.com

TypeScript CodeDz928資訊網——每日最新資訊28at.com

enum Color {    Red,    Green,    Blue}for(let colorKey in Color) {    console.log(colorKey)}/**Output: "0" "1" "2" "Red" "Green" "Blue" */

枚舉原始值

Swift 中的枚舉可以關聯原始值,這些原始值可以是整數、浮點數、字符串等類型。枚舉的原始值為每個成員提供了一個默認值,方便我們在不同的上下文中使用。Dz928資訊網——每日最新資訊28at.com

數值原始值

Swift CodeDz928資訊網——每日最新資訊28at.com

enum Weekday: Int {    case sunday = 1    case monday    case tuesday    case wednesday    case thursday    case friday    case saturday}let today: Weekday = .tuesdaylet rawValue: Int = today.rawValueprint(rawValue)// Output: 3

在以上代碼中,我們定義了一個表示星期的枚舉 Weekday,并為每個成員顯式賦予了一個原始值。默認情況下,第一個成員的原始值為 1,后續成員的原始值遞增。Dz928資訊網——每日最新資訊28at.com

TypeScript CodeDz928資訊網——每日最新資訊28at.com

enum Weekday {    Sunday = 1,    Monday,    Tuesday,    Wednesday,    Thursday,    Friday,    Saturday}let today: Weekday = Weekday.Tuesday;let rawValue: number = today;console.log(rawValue);// Output: 3

在 TypeScript 中,數值枚舉的原始值也是遞增的,與 Swift 中的數值枚舉相似。Dz928資訊網——每日最新資訊28at.com

字符串原始值

Swift CodeDz928資訊網——每日最新資訊28at.com

enum Direction: String {    case up = "UP"    case down = "DOWN"    case left = "LEFT"    case right = "RIGHT"}let move: Direction = .uplet directionString: String = move.rawValueprint(directionString)// Output: UP

在以上代碼中,我們定義了一個字符串枚舉 Direction,為每個成員顯式賦予了一個字符串原始值。Dz928資訊網——每日最新資訊28at.com

TypeScript CodeDz928資訊網——每日最新資訊28at.com

enum Direction {    Up = "UP",    Down = "DOWN",    Left = "LEFT",    Right = "RIGHT"}let move: Direction = Direction.Up;let directionString: string = move;console.log(directionString);// Output: "UP"

字符串枚舉的原始值在 TypeScript 中也是類似的,允許為每個成員指定字符串類型的原始值。Dz928資訊網——每日最新資訊28at.com

枚舉關聯值

Swift 中的枚舉不僅可以有原始值,還可以攜帶關聯值。關聯值允許在定義枚舉的時候指定每個成員攜帶的數據類型。這樣,每個枚舉成員都可以攜帶不同類型的數據。Dz928資訊網——每日最新資訊28at.com

Swift CodeDz928資訊網——每日最新資訊28at.com

import Foundation// 定義 Shape 枚舉描述不同的圖形enum Shape {    case circle(radius: Double)    case square(side: Double)    case rectangle(width: Double, height: Double)}// 使用關聯值創建不同的圖形let circle: Shape = .circle(radius: 3.0)let square: Shape = .square(side: 4.0)let rectangle: Shape = .rectangle(width: 3.0, height: 4.0)

在以上代碼中,我們定義了一個 Shape 枚舉,其中的每個成員都可以攜帶不同類型的關聯值,表示不同的圖形。有了 Shape 枚舉之后,我們可以創建一個 calculateArea 函數,來計算不同圖形的面積。Dz928資訊網——每日最新資訊28at.com

Swift CodeDz928資訊網——每日最新資訊28at.com

func calculateArea(shape: Shape) -> Double {    switch shape {    case .circle(let radius):        return Double.pi * pow(radius, 2)    case .square(let side):        return pow(side, 2)    case .rectangle(let width, let height):        return width * height    }}// 計算不同圖形的面積let areaOfCircle = calculateArea(shape: circle) // 28.27433388230814let areaOfSquare = calculateArea(shape: square) // 16let areaOfRectangle = calculateArea(shape: rectangle) // 12

在以上代碼中,我們定義了一個函數 calculateArea,根據圖形的類型計算圖形的面積。通過關聯值,我們可以輕松地提取不同圖形的屬性進行計算。在 TypeScript 中,由于并沒有直接對應 Swift 枚舉關聯值的語法,我們可以使用 TypeScript 的聯合類型來模擬這種行為。Dz928資訊網——每日最新資訊28at.com

TypeScript CodeDz928資訊網——每日最新資訊28at.com

interface Circle {    kind: 'circle';    radius: number;}interface Square {    kind: 'square';    side: number;}interface Rectangle {    kind: 'rectangle';    width: number;    height: number;}// 使用聯合類型表示不同的圖形type Shape = Circle | Square | Rectangle;

在以上代碼中,我們使用接口和聯合類型來定義不同圖形的數據結構。之后,我們也可以定義一個 calculateArea 函數來計算不同圖形的面積。Dz928資訊網——每日最新資訊28at.com

TypeScript CodeDz928資訊網——每日最新資訊28at.com

function calculateArea(shape: Shape): number {    switch (shape.kind) {        case 'circle':            return Math.PI * Math.pow(shape.radius, 2);        case 'square':            return Math.pow(shape.side, 2);        case 'rectangle':            return shape.width * shape.height;        default:            throw new Error('Invalid shape');    }}const circle: Circle = { kind: "circle", radius: 3.0 }const square: Square = { kind: "square", side: 4.0 }const rectangle: Rectangle = { kind: "rectangle", width: 3.0, height: 4.0 }// 計算不同圖形的面積const areaOfCircle = calculateArea(circle); // 28.274333882308138const areaOfSquare = calculateArea(square); // 16const areaOfRectangle = calculateArea(rectangle); // 12

枚舉中定義計算屬性

Swift CodeDz928資訊網——每日最新資訊28at.com

enum Color {    case red, green, blue    var hexValue: String {        switch self {        case .red:            return "#FF0000"        case .green:            return "#00FF00"        case .blue:            return "#0000FF"        }    }}let greenColor = Color.greenprint(greenColor.hexValue)// Output: #00FF00

在以上代碼中,我們為 Color 枚舉增加了一個計算屬性 hexValue,用于表示顏色的十六進制值。Dz928資訊網——每日最新資訊28at.com

枚舉中定義方法

Swift CodeDz928資訊網——每日最新資訊28at.com

enum Color {    case red, green, blue    func description() -> String {        switch self {        case .red:            return "Color is red."        case .green:            return "Color is green."        case .blue:            return "Color is blue."        }    }}let greenColor = Color.greenprint(greenColor.description())// Output: Color is green.

在以上代碼中,我們在 Color 枚舉中添加了一個 description 方法,用于返回顏色的描述信息。Dz928資訊網——每日最新資訊28at.com

本文我們介紹了在 Swift 中如何定義枚舉、遍歷枚舉、枚舉原始值、枚舉關聯值等相關的內容。通過與 TypeScript 語法的對比,希望能幫助您更好地理解 Swift 的相關特性。Dz928資訊網——每日最新資訊28at.com


Dz928資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-64510-0.htmlSwift 枚舉類型,你知道幾個?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 使用 Spring Boot 創建自己的 ChatGPT 應用程序

下一篇: 透明度怎么轉換為16進制值

標簽:
  • 熱門焦點
  • MIX Fold3包裝盒泄露 新機本月登場

    小米的全新折疊屏旗艦MIX Fold3將于本月發布,近日該機的真機包裝盒在網上泄露。從圖上來看,新的MIX Fold3包裝盒在外觀設計方面延續了之前的方案,變化不大,這也是目前小米旗艦
  • K60至尊版狂暴引擎2.0加持:超177萬跑分斬獲性能第一

    Redmi的后性能時代戰略發布會今天下午如期舉辦,在本次發布會上,Redmi公布了多項關于和聯發科的深度合作,以及新機K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開始學習反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無法成功對代碼進行反混淆,尤其是使用自定義混淆器對其進行混淆時。什么是混
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發生
  • 2023年,我眼中的字節跳動

    此時此刻(2023年7月),字節跳動從未上市,也從未公布過任何官方的上市計劃;但是這并不妨礙它成為中國最受關注的互聯網公司之一。從2016-17年的抖音強勢崛起,到2018年的“頭騰
  • 簽約井川里予、何丹彤,單視頻點贊近千萬,MCN黑馬永恒文??焖籴绕?!

    來源:視聽觀察永恒文希傳媒作為一家MCN公司,說起它的名字來,可能大家會覺得有點兒陌生,但是說出來下面一串的名字之后,或許大家就會感到震驚,原來這么多網紅,都簽約這家公司了。根
  • 超級標準版旗艦!iQOO 11S全球首發iQOO超算獨顯芯片

    上半年已接近尾聲,截至目前各大品牌旗下的頂級旗艦都已悉數亮相,而下半年即將推出的頂級旗艦已經成為了數碼圈爆料的主流,其中就包括全新的iQOO 11S系
  • 機構稱Q2全球智能手機出貨量同比下滑11% 蘋果份額依舊第2

    7月20日消息,據外媒報道,研究機構的報告顯示,由于需求下滑,今年二季度全球智能手機的出貨量,同比下滑了11%,三星、蘋果等主要廠商的銷量,較去年同期均有下
  • 蘋果140W USB-C充電器:采用氮化鎵技術

    據10 月 30 日 9to5 Mac 消息報道,當蘋果推出新的 MacBook Pro 2021 時,該公司還推出了新的 140W USB-C 充電器,附贈在 MacBook Pro 16 英寸機型的盒子里,也支
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲成色777777在线观看影院| 欧美日韩免费高清| 性做久久久久久久久| 午夜视频精品| 老鸭窝91久久精品色噜噜导演| 欧美激情精品久久久久久| 欧美四级剧情无删版影片| 国产日韩精品一区二区三区| 国产自产2019最新不卡| 亚洲三级视频| 亚洲欧美日韩精品久久久| 久久久久国产一区二区三区四区| 欧美电影免费观看大全| 欧美激情视频一区二区三区在线播放 | 国内一区二区三区在线视频| 亚洲成色999久久网站| 99精品国产热久久91蜜凸| 亚洲欧美国产高清| 老司机凹凸av亚洲导航| 欧美午夜不卡在线观看免费| 韩曰欧美视频免费观看| 99日韩精品| 久久精品女人的天堂av| 欧美精品1区2区3区| 国产欧美日韩三区| 亚洲日韩欧美视频一区| 亚洲欧美日韩精品一区二区| 美日韩免费视频| 国产精品久久久久久模特| 一区二区三区在线视频免费观看| 一区二区三区精密机械公司 | 久久嫩草精品久久久精品一| 欧美日韩视频一区二区| 国产亚洲毛片在线| 99成人在线| 久久蜜臀精品av| 国产精品第一页第二页第三页| 亚洲福利电影| 欧美综合国产| 国产精品国色综合久久| 亚洲激情成人网| 久久精品国产亚洲精品 | 亚洲另类一区二区| 久久久久成人网| 国产精品久久久久9999| 亚洲欧洲精品一区二区三区 | 国产精品影视天天线| 亚洲精品久久久久久下一站| 久久久久**毛片大全| 国产精品视频专区| 99re亚洲国产精品| 欧美国产精品中文字幕| 激情综合久久| 欧美一区二区三区免费在线看| 欧美午夜不卡在线观看免费| 亚洲精品国产精品久久清纯直播| 久久精品亚洲一区二区| 国产精品一二三四| 99国产精品久久久久久久久久| 麻豆久久婷婷| 韩国久久久久| 欧美在线播放| 国产欧美午夜| 亚洲欧美一区二区三区在线| 欧美日韩直播| 一本色道久久综合亚洲精品按摩 | 国产精品久久久久久久久久三级| 99国产精品99久久久久久| 欧美精品二区| 亚洲精品乱码久久久久久按摩观| 美女日韩在线中文字幕| 影院欧美亚洲| 久久影院亚洲| 伊人久久亚洲影院| 久久夜色精品国产欧美乱| 国产亚洲欧美另类中文| 欧美一区二区三区四区在线| 国产精品主播| 亚洲女爱视频在线| 国产精品人人爽人人做我的可爱| 亚洲天堂免费观看| 国产精品对白刺激久久久| 中文久久精品| 国产精品国码视频| 午夜国产精品视频| 国产欧美日韩亚洲| 久久精品91久久久久久再现| 国内精品福利| 久久综合网色—综合色88| 在线日韩中文字幕| 欧美国产视频一区二区| 亚洲经典自拍| 欧美理论电影在线播放| 一区二区三区欧美在线观看| 欧美性猛交xxxx乱大交退制版| 亚洲性感激情| 国产精品综合视频| 久久九九精品| 亚洲东热激情| 欧美日韩在线播| 亚洲欧美国产精品桃花| 国产欧美视频一区二区| 久久久久久伊人| 91久久精品国产91久久| 欧美日韩国产综合久久| 亚洲永久免费av| 国产亚洲女人久久久久毛片| 美女日韩欧美| 一本大道久久a久久综合婷婷| 国产精品久久久久久av福利软件 | 欧美日韩国产一区二区三区| 亚洲永久网站| 国内外成人免费视频 | 国产综合色产在线精品| 免费观看30秒视频久久| 99pao成人国产永久免费视频| 国产精品久久看| 久久久不卡网国产精品一区| 亚洲国产三级网| 国产精品成人va在线观看| 久久国产精彩视频| 亚洲国产综合91精品麻豆| 欧美色欧美亚洲高清在线视频| 香蕉精品999视频一区二区| 在线不卡欧美| 国产精品videosex极品| 久久黄色小说| 夜夜嗨av一区二区三区| 国产色综合久久| 欧美激情视频在线播放| 香蕉av福利精品导航| 亚洲国产精品t66y| 国产精品免费区二区三区观看| 久久一区二区三区超碰国产精品| 日韩视频永久免费| 国产丝袜美腿一区二区三区| 欧美激情精品| 久久精品91久久香蕉加勒比| 亚洲精品久久久久中文字幕欢迎你| 国产精品久久久久一区二区三区共 | 亚洲美女av黄| 国产视频一区免费看| 欧美精品18| 久久99伊人| 一区二区久久| 尤物在线观看一区| 国产精品免费小视频| 欧美mv日韩mv亚洲| 性欧美在线看片a免费观看| 亚洲精品美女| 国产一区二区三区日韩| 欧美日韩网址| 久久综合影视| 亚洲综合国产激情另类一区| 亚洲国产视频直播| 国产亚洲福利一区| 欧美午夜精品久久久久免费视| 久热综合在线亚洲精品| 欧美一区二区高清在线观看| 99视频国产精品免费观看| 精品999在线播放| 国产精品欧美经典| 欧美激情一二区| 久久男人资源视频| 亚洲欧美日韩成人高清在线一区| 亚洲精品国偷自产在线99热| 国内自拍亚洲| 国产欧美精品在线播放| 欧美日精品一区视频| 欧美va天堂| 久久黄色网页| 午夜伦理片一区| 亚洲视频一区二区| 亚洲日本久久| 在线日韩av片| 好看的日韩视频| 国产日本亚洲高清| 国产精品久久久久久久久| 欧美日韩一区三区| 欧美刺激性大交免费视频| 久久亚洲春色中文字幕久久久| 午夜一区不卡| 亚洲免费在线视频| 在线一区二区三区四区五区| 亚洲精品国产精品乱码不99 | 国产日韩欧美黄色| 国产精品美女主播| 国产精品草草| 欧美午夜三级| 欧美视频在线一区| 欧美日韩视频在线一区二区观看视频| 欧美激情按摩| 欧美xx视频| 欧美xxx在线观看| 欧美a级在线| 欧美成人午夜免费视在线看片| 久热国产精品| 美女露胸一区二区三区| 模特精品裸拍一区| 欧美成人激情视频| 欧美国产亚洲另类动漫| 欧美激情精品久久久久久蜜臀| 欧美国产日韩在线| 欧美高清视频|