Swift入門(七)——結構體(Struct)

來源:互聯網
上載者:User

標籤:struct   結構體   swift   swift   入華   

引子

之前我們在用Int,String等類型的時候,可能沒有仔細研究過,其實這些基本類型與C或者Java不一樣,不是嚴格的“基本類型”,他們其實是經過封裝的結構體。

按住Alt鍵點擊Int類型後,可以看到Int結構體的完整定義

/// A 64-bit signed integer value/// type.struct Int : SignedIntegerType {    var value: Builtin.Int64    /// A type that can represent the number of steps between pairs of    /// values.    typealias Distance = Int    /// Create an instance initialized to zero.    init()    init(_ v: Builtin.Word)    /// Create an instance initialized to `value`.    init(_ value: Int)    ///以下代碼省略}

可以看到,結構體中的成員變數儲存了Int類型的值,同時還提供了包括初始化方法之內的若干個方法。

Swift中的結構體並不複雜,與C語言的結構體相比,除了成員變數,還多了成員方法。使得它更加接近於一個類。個人認為這算是類的一個輕量化實現。下面我通過自己實現一個結構體來加深對其的理解。

定義結構體
struct Person {    var name:String    var age:Int    func introduce(){        println("我叫:\(name),今年\(age)歲")    }}

文法與C語言或者OC類似,函數會在之後介紹。不過需要注意的是,Swift中的結構體,在定義成員變數時一定要註明類型。

結構體的使用

定義完結構體之後就可以建立一個Person結構體類型的變數了。

var person = Person(unknown: "kt",age: 20)

這裡的Person(name:age:)方法是結構體根據其成員變數預設產生的構造方法。當然我們也可以自訂它的構造方法。

建立結構體變數後,就可以訪問或修改結構體的成員變數或調用在結構體裡面定義的成員方法。

person.name = "kt"println("person.name = \(person.name)")person.introduce()

運行結果:

person.name = kt我叫:kt,今年20歲

另外要注意一下的是,結構體屬於實值型別,而Swift中的類屬於參考型別。他們在記憶體管理方面會有不同。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Swift入門(七)——結構體(Struct)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.