我对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
}
}
答案 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)
打开访问权限和公共访问权限实现在任何实体中使用 源文件来自其定义模块,也来自源文件 另一个导入定义模块的模块。你通常使用 指定a的公共接口时的open或public访问权限 框架。描述了开放和公共访问之间的区别 下方。
这意味着您可以在任何源文件中使用此构造函数。
答案 3 :(得分:0)
主要目的是初始化对象,它是一个构造函数。有关详细信息,请查看此out
答案 4 :(得分:0)
调用初始化程序以创建特定类型的新实例。在最简单的形式中,初始化器就像没有参数的实例方法,使用init关键字编写。通常在指定框架的公共接口时使用公共访问。