<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Swift 數據類型 > 原文: [https://www.programiz.com/swift-programming/data-types](https://www.programiz.com/swift-programming/data-types) #### 在本教程中,您將了解 Swift 編程語言支持的不同數據類型,并在創建變量或常量時使用它。 數據類型是變量或常量可以存儲在其中的數據(值)的類型。 例如,在文章 [Swift 變量和常量](/swift-programming/variables-constants-literals "Swift variables and constants")中,您創建了一個變量和一個常量以將字符串數據存儲在內存中。 該數據可以是文本/字符串(`"Hello"`)或數字(12.45),也可以是位(`0 & 1`)。 定義數據類型可確保僅存儲定義的數據類型。 **讓我們看一個場景**: 假設您要創建一個游戲。 由于大多數游戲在游戲完成后都會顯示高分和玩家姓名,因此您需要為游戲存儲這兩個數據。 高分是一個數字(例如 59),玩家的名字是一個字符串(例如 Jack)。 您可以創建兩個變量或常量來存儲數據。 在 Swift 中,這可以通過將變量和數據類型聲明為: ```swift var highScore:Int = 59 var playerName:String = "Jack" ``` 在這里,我們聲明了類型為`Int`的`highScore`變量,該變量存儲了值 59。并且,類型為`String`的`playerName`變量,其存儲了值`Jack`。 但是,如果您執行以下操作: ```swift var highScore:Int = "Jack" ``` 您將得到一個編譯時錯誤,指出**無法將類型`String`的值轉換為指定的類型`Int`**。 這是因為您聲明了`highScore`存儲整數值,但在其中放置了字符串。 此錯誤可確保`highScore`僅能存儲數字,而不能存儲玩家的姓名。 * * * ## 數據類型的大小 數據類型的另一個重要部分是其大小。 這指定了可以存儲在給定變量或常量中的數據大小。 **類型**的大小以位為單位進行測量,最多可以存儲`2^bit`的值。 如果您不了解`bit`,請將其視為 0 或 1 的值。 因此,對于大小為 1 位的**類型**,它最多只能存儲`2^1 = 2`,兩個值:0 或 1。所以 1 字母程序的位系統可以將 0 解釋為`a / 0`,將 1 解釋為`b / 1.0`。 ```swift 0 -> a or 0 1 -> b or 1 ``` 同樣,兩位系統最多可以存儲`2^2 = 4`個值:(`00,01,10,11`),每個組合可以表示為: ```swift 00 -> a or 0 01 -> b or 1 11 -> c or 2 10 -> d or 3 ``` 對于 n 位系統,它最多可以在其中存儲`2^n`值。 * * * ## Swift 數據類型 下面列出了 swift 中最常用的數據類型: ### `Bool` * 聲明為`Bool`類型的變量/常量只能存儲`true`或`false`兩個值。 * **默認值**:`false` * 當您使用`if-else`語句時,經常使用它。 [Swift `if-else`](/swift-programming/if-else-statement "Swift if else statement")文章將對此進行詳細介紹。 #### 示例 1:`Bool`數據類型 ```swift let result:Bool = true print(result) ``` 運行該程序時,輸出為: ```swift true ``` * * * ### `Int` * 聲明為整數類型的變量/常數可以存儲正整數和負整數,包括零且無小數部分。 * **默認值**:0 * **大小**:32/64 位取決于平臺類型。 * **范圍**:-2,147,483,648 至 2,147,483,647(32 位平臺) -9223372036854775808 至 9223372036854775807(64 位平臺) * 有很多`Integer`類型的變體,例如`UInt`,`Int8`,`Int16`等。最常用的是`Int`。 * 如果需要指定變量/常量可以容納的整數的大小/類型,則可以使用`UInt`,`Int8`和`Int16`等更具體地存儲它,我們將在下面進行探討。 #### 示例 2:`Int`數據類型 ```swift var highScore:Int = 100 print(highScore) highScore = -100 print(highScore) ``` 運行該程序時,輸出為: ```swift 100 -100 ``` 在上面的示例中,我們聲明了類型為`Int`的變量`highScore`。 首先,我們為其分配了一個值 100,因此`print(highScore)`在屏幕上輸出 100。 稍后,我們使用賦值運算符將`highScore = -100`的值更改為-100,因此`print(highScore)`在屏幕上輸出 -100。 * * * 讓我們探索 Swift 中`Int`類型的一些變體。 #### `Int8` * 可以存儲正數和負數的整數類型的變體。 * **默認值**:0 * **大小**:8 位 * **范圍**:-128 至 127 一個`Int8`整數可以總共存儲`2^8 = 256`個值。 即它可以存儲 0 到 255 之間的數字,對不對? 是的,你是對的。 但是由于`Int8`同時包含正數和負數,我們可以存儲從 -128 到 127 的數字,其中包括 0,總計為 256 個值或數字。 ```swift var highScore:Int8 = -128//ok highScore = 127 //ok highScore = 128 // error here highScore = -129 //error here ``` 您還可以使用 [Swift 函數](/swift-programming/functions "Swift functions")內置的`.min`和`.max`找出類型可以存儲的最高和最低值。 **示例 3:`Int8`數據類型的`Max`和`Min`** ```swift print(Int8.min) print(Int8.max) ``` 運行該程序時,輸出為: ```swift -128 127 ``` * * * #### `UInt` * 整數類型的變體,稱為`UInt`(無符號整數),只能存儲無符號數字(正數或零)。 * **默認值**:0 * **大小**:32/64 位取決于平臺類型。 * **范圍**:0 至 4294967295(32 位平臺) 0 至 18446744073709551615(64 位平臺) **示例 4:`UInt`數據類型** ```swift var highScore:UInt = 100 highScore = -100//compile time error when trying to ``` 上面的代碼將給您一個編譯時錯誤,因為無符號整數只能存儲 0 或正值。 嘗試在無符號整數中存儲負值會給您一個錯誤。 * * * ### `Float` * 聲明為浮點型的變量或常量可以存儲帶小數點或小數點的數字。 * **默認值**:0.0 * **大小**:32 位浮點數。 * **范圍**:`1.2 * 10^-38`至`3.4 * 10^38`(`~6`位數字) #### 示例 5:`Float`數據類型 ```swift let highScore:Float = 100.232 print(highScore) ``` 運行該程序時,輸出為: ```swift 100.232 ``` * * * ### `Double` * 聲明為`Double`類型的變量/常量也將帶小數點或小數點的數字存儲為`Float`,但比`Float`支持的小數點大。 * **默認值**:0.0 * **大小**:64 位浮點數。 (因此,Double 類型的變量可以存儲帶小數或小數點大于 Float 支持的數字) * **范圍**:`2.3 * 10^-308`至`1.7 * 10^308`(`~15`位數字) #### 示例 6:`Double`數據類型 ```swift let highScore:Double = 100.232321212121 print(highScore) ``` 運行該程序時,輸出為: ```swift 100.232321212121 ``` * * * ### `Character` * 聲明為`Character`類型的變量/常量可以存儲單字符字符串字面值。 * 您可以使用轉義序列`\u{n}`(unicode 碼點,n 為十六進制)在 Swift 中將表情符號或英語以外的其他語言作為字符包含在內。 #### 示例 7:`Character`數據類型 ```swift let playerName:Character = "J" let playerNameWithUnicode:Character = "\u{134}" print(playerName) print(playerNameWithUnicode) ``` 運行該程序時,輸出為: ```swift J ? ``` * * * ### `String` * 聲明為`String`類型的變量或常量可以存儲字符集合。 * **默認值**:`""`(空字符串) * 它是值類型。 請參見*值和引用類型簡介*。 * 您可以使用`for-in`循環遍歷字符串。 *參見* [Swift `for-in`循環](/swift-programming/for-in-loop "Swift for-in loop")。 * Swift 還支持一些特殊的轉義序列以在字符串中使用它們。 例如, * `\0`(空字符), * `\\`(普通的反斜杠\), * `\t`(制表符), * `\v`(垂直標簽), * `\r`(回車), * `\"`(雙引號), * `\'`(單引號),以及 * `\u{n}`(unicode 碼點,n 為十六進制)。 #### 示例 8:`String`數據類型 ```swift let playerName = "Jack" let playerNameWithQuotes = "\"Jack\"" let playerNameWithUnicode = "\u{134}ack" print(playerName) print(playerNameWithQuotes) print(playerNameWithUnicode) ``` 運行該程序時,輸出為: ```swift Jack "Jack" ?ack ``` 請參閱 [Swift 字符和字符串](/swift-programming/characters-strings "Swift characters and strings"),以了解有關字符和字符串的聲明,操作和示例的更多信息。 除此數據類型外,Swift 中還有其他高級數據類型,例如**元組**,**可選項**,**范圍**,**類**,**結構**等,您將在后面的章節中學習。 * * * ## 要記住的事情 1.由于 Swift 是一種類型推斷語言,因此變量或常量可以根據存儲的值自動推斷類型。 因此,您可以在創建變量或常量時跳過類型。 但是,出于可讀性考慮,您可以考慮編寫該類型,但不建議這樣做。 **示例 9:變量/常量的類型推斷** ```swift let playerName = "Jack" print(playerName) ``` Swift 編譯器可以根據其值自動推斷該變量為`String`類型。 2\. Swift 是一種類型安全的語言。 如果將變量定義為某種類型,則以后不能使用其他數據類型對其進行更改。 **示例 10:Swift 是一種類型安全的語言** ```swift let playerName:String playerName = 55 //compile time error ``` 上面的代碼將產生一個錯誤,因為我們已經指定變量`playerName`將為`String`。 因此我們無法在其中存儲一個整數。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看