<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Swift 結構體 Swift 結構體是構建代碼所用的一種通用且靈活的構造體。 我們可以為結構體定義屬性(常量、變量)和添加方法,從而擴展結構體的功能。 與 C 和 Objective C 不同的是: * 結構體不需要包含實現文件和接口。 * 結構體允許我們創建一個單一文件,且系統會自動生成面向其它代碼的外部接口。 結構體總是通過被復制的方式在代碼中傳遞,因此它的值是不可修改的。 ### 語法 我們通過關鍵字 struct 來定義結構體: ``` struct nameStruct { Definition 1 Definition 2 …… Definition N } ``` ### 實例 我們定義一個名為 MarkStruct 的結構體 ,結構體的屬性為學生三個科目的分數,數據類型為 Int: ``` struct MarkStruct{ var mark1: Int var mark2: Int var mark3: Int } ``` 我們可以通過結構體名來訪問結構體成員。 結構體實例化使用 **let** 關鍵字: ``` import Cocoa struct studentMarks { var mark1 = 100 var mark2 = 78 var mark3 = 98 } let marks = studentMarks() print("Mark1 是 \(marks.mark1)") print("Mark2 是 \(marks.mark2)") print("Mark3 是 \(marks.mark3)") ``` 以上程序執行輸出結果為: ``` Mark1 是 100 Mark2 是 78 Mark3 是 98 ``` 實例中,我們通過結構體名 'studentMarks' 訪問學生的成績。結構體成員初始化為mark1, mark2, mark3,數據類型為整型。 然后我們通過使用 **let** 關鍵字將結構體 studentMarks() 實例化并傳遞給 marks。 最后我們就通過 **.** 號來訪問結構體成員的值。 以下實例化通過結構體實例化時傳值并克隆一個結構體: ``` import Cocoa struct MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } var aStruct = MarksStruct(mark: 98) var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的結構體! bStruct.mark = 97 print(aStruct.mark) // 98 print(bStruct.mark) // 97 ``` 以上程序執行輸出結果為: ``` 98 97 ``` ## 結構體應用 在你的代碼中,你可以使用結構體來定義你的自定義數據類型。 結構體實例總是通過值傳遞來定義你的自定義數據類型。 按照通用的準則,當符合一條或多條以下條件時,請考慮構建結構體: * 結構體的主要目的是用來封裝少量相關簡單數據值。 * 有理由預計一個結構體實例在賦值或傳遞時,封裝的數據將會被拷貝而不是被引用。 * 任何在結構體中儲存的值類型屬性,也將會被拷貝,而不是被引用。 * 結構體不需要去繼承另一個已存在類型的屬性或者行為。 舉例來說,以下情境中適合使用結構體: * 幾何形狀的大小,封裝一個`width`屬性和`height`屬性,兩者均為`Double`類型。 * 一定范圍內的路徑,封裝一個`start`屬性和`length`屬性,兩者均為`Int`類型。 * 三維坐標系內一點,封裝`x`,`y`和`z`屬性,三者均為`Double`類型。 結構體實例是通過值傳遞而不是通過引用傳遞。 ``` import Cocoa struct markStruct{ var mark1: Int var mark2: Int var mark3: Int init(mark1: Int, mark2: Int, mark3: Int){ self.mark1 = mark1 self.mark2 = mark2 self.mark3 = mark3 } } print("優異成績:") var marks = markStruct(mark1: 98, mark2: 96, mark3:100) print(marks.mark1) print(marks.mark2) print(marks.mark3) print("糟糕成績:") var fail = markStruct(mark1: 34, mark2: 42, mark3: 13) print(fail.mark1) print(fail.mark2) print(fail.mark3) ``` 以上程序執行輸出結果為: ``` 優異成績: 98 96 100 糟糕成績: 34 42 13 ``` 以上實例中我們定義了結構體 markStruct,三個成員屬性:mark1, mark2 和 mark3。結構體內使用成員屬性使用 self 關鍵字。 從實例中我們可以很好的理解到結構體實例是通過值傳遞的。
                  <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>

                              哎呀哎呀视频在线观看