2016-09-28 1 views
4

Должен ли я использовать private или fileprivate для объявления глобальных переменных/констант в Swift 3? , например.private vs. fileprivate при объявлении глобальных переменных/констант в Swift3?

fileprivate let a = 1 
fileprivate class SomeClass { 
    fileprivate b = 0 
} 

Или

private let a = 1 
private class someClass { 
    fileprivate b = 0 
} 
+0

Возможный дубликат [Что является хорошим примером для различения fileprivate и private в swift3] (http://stackoverflow.com/questions/39027250/what-is-a-good-example-to-differentiate-between- fileprivate-and-private-in-swift) –

+2

@NiravD благодарит ваш быстрый комментарий, но он не упоминает переменную в глобальной области. он упоминает только переменную в прилагаемой декларации. – frogcjn

+0

Возможно, это поможет вам https://cocoacasts.com/what-is-the-difference-between-private-and-fileprivate-in-swift-3/ –

ответ

3

Это на самом деле не имеет никакого значения на уровне файлов, используете ли вы private из fileprivate, контроль доступа будет таким же, например, констант, определенных таким образом можно будет использовать только в том, файл.

То же самое можно сказать и для других модификаторов, в некоторых случаях внутренние и частные становятся такими же, например. тот же единственный файловый модуль.

В этом случае вы должны использовать fileprivate, поскольку в нем более четко указано намерение -> вы хотите использовать его в целом файле.

В будущих версиях swift вполне допустимо (есть некоторые предлагаемые изменения в swift 4), что в этих модификаторах действительно будут изменения, а fileprivate и private будут иметь разный объем в этом случае.