Swift 3中“public init(){}”的含义是什么?

时间:2017-02-01 11:09:29

标签: swift

我对Swift很新,我一直在努力学习如何在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
    }
}

5 个答案:

答案 0 :(得分:5)

当您标记public时,该东西在实现代码的框架之外可用,而init() {}是一个快速初始化程序,负责确保对象完全初始化。基本上,调用初始值设定项来创建特定类型的新实例。在最简单的形式中,初始化器就像没有参数的实例方法。

init() {
    // perform some initialization here
}

答案 1 :(得分: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
    }

答案 2 :(得分:0)

来自documentation

  

打开访问权限和公共访问权限实现在任何实体中使用   源文件来自其定义模块,也来自源文件   另一个导入定义模块的模块。你通常使用   指定a的公共接口时的open或public访问权限   框架。描述了开放和公共访问之间的区别   下方。

这意味着您可以在任何源文件中使用此构造函数。

答案 3 :(得分:0)

主要目的是初始化对象,它是一个构造函数。有关详细信息,请查看此out

答案 4 :(得分:0)

调用初始化程序以创建特定类型的新实例。在最简单的形式中,初始化器就像没有参数的实例方法,使用init关键字编写。通常在指定框架的公共接口时使用公共访问。

有关详细信息,请参阅https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html