2017-02-01 201 views
-1

我對Swift相當陌生,我一直在試圖學習如何在Swift 3中實現一個堆棧。在我發現在線實現堆棧結構的一些參考代碼中,我遇到了public init() {}這是什麼意思?在Swift 3中,「public init(){}」是什麼意思?

public struct Stack<T> { 
    private var elements = [T]() 

    public init() {} 

    public mutating func push(element: T) { 
     self.elements.append(element) 
    } 

    public mutating func pop() -> T? { 
     return self.elements.popLast() 
    } 

    public mutating func peek() -> T? { 
     return self.elements.last 
    } 

    public func isEmpty() -> Bool { 
     return self.elements.isEmpty 
    } 

    public func count() -> Int { 
     return self.elements.count 
    } 
} 
+0

您使用inti()創建Class的實例對象。它是一個構造函數。 –

+0

你對此瞭解甚麼?你是否理解[初始化](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html#//apple_ref/doc/uid/TP40014097-CH18-ID203)?你知道一個結構的自動生成的成員初始化是[限於'內部'訪問級別](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html#//apple_ref/DOC/UID/TP40014097-CH41-ID19)? – Hamish

回答

4

當您標記public,事情獲取你的代碼已經實現,而init() {}框架外提供一個swift初始化器負責確保對象完全初始化。基本上初始化器被調用來創建一個特定類型的新實例。在其最簡單的形式中,初始化器就像沒有參數的實例方法。

init() { 
    // perform some initialization here 
} 
0

documentation

打開訪問和公共訪問使得實體能夠在任何 源文件中從它們的定義模塊從 另一使用,並且也在源文件中導入定義模塊的模塊。在指定 框架的公共接口時,通常使用 開放或公共訪問。下面描述了開放和公共訪問之間的區別 。

這意味着你可以在任何源文件中使用這個構造函數。

0

主要目的是初始化對象,它的一個構造函數。有關詳細信息,請檢查此out

1

你的答案與評論:

public class SomePublicClass {     // explicitly public class 
     public var somePublicProperty = 0   // explicitly public class member 
     var someInternalProperty = 0     // implicitly internal class member 
     fileprivate func someFilePrivateMethod() {} // explicitly file-private class member 
     private func somePrivateMethod() {}   // explicitly private class member 
    } 
相關問題