首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Swift中创建私有函数?

如何在Swift中创建私有函数?
EN

Stack Overflow用户
提问于 2014-06-05 16:29:53
回答 2查看 17.7K关注 0票数 20

如何在Swift中创建私有函数?

下面是一个示例:

import UIKit

class AnotherClass {

    var someVar = 1
    let someConst = 2

    func somePrivateFunc() -> Bool {
        return true
    }

    func someFunc() -> (Int -> Bool) {
        var someInnerFuncVar = { (num: Int)->Bool in
            return true
        }

        return someInnerFuncVar
    }

    init() {
        var vc = ViewController()
    }

}

但如果这是唯一的办法...

EN

回答 2

Stack Overflow用户

发布于 2014-06-05 16:45:37

或者,您可以像这样使用Nested Classes

// Public interface
class Bakery
{
    // Private implementation
    class Baker
    {
        func prepareToMakeBread(numberOfLoafs:Int)
        {
            println("Preparing to make \(numberOfLoafs) loafs of bread...")
        }

        func bakeBread()
        {
            println("Baking the bread...")
        }

        func packageBread()
        {
            println("Packaging the freshly baked bread...")
        }
    }

    // Public method
    func buyBread(numberOfLoafs:Int)
    {
        println("Customer requests \(numberOfLoafs) loafs of bread!")

        let baker = Bakery.Baker()

        baker.prepareToMakeBread(numberOfLoafs)
        baker.bakeBread()
        baker.packageBread()
    }
}

let bakery = Bakery()    
bakery.buyBread(4)

输出:

Customer requests 4 loafs of bread!  
Preparing to make 4 loafs of bread...  
Baking the bread...  
Packaging the freshly baked bread...  

然而,从技术上讲,它们不是私有的,因为有人可以实例化Bakery.Baker并调用方法。函数中的函数确实可以工作,但很难看...

票数 3
EN

Stack Overflow用户

发布于 2014-06-13 21:44:10

请参阅我的答案over here

简而言之,当您谈到在Swift或ObjC (或ruby、java或…)中创建“私有方法”或“私有函数”时,这些方法并不是真正的“私有”。它们周围没有实际的访问控制。任何提供一点点自省的语言都可以让开发人员从类之外获得这些值,如果他们真的想要的话。

因此,我们正在讨论的是一种定义面向公众的接口的方法,它只显示我们想要的功能,并“隐藏”我们认为是“私有”的其余功能。

声明接口的快速机制是protocol,它可以用于此目的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24055258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档