Соглашение об именах для методов и свойств в Swift. Можно ли использовать & ldquo; get & rdquo ;, & ldquo; set & rdquo; и & ldquo; is & rdquo; Ключевые слова?

>>> import pickle
>>> with open("/tmp/picklefile", "wb") as f:
...     pickle.dump({}, f)
... 

обычно предпочтительнее использовать реализацию cPickle

>>> import cPickle as pickle
>>> help(pickle.dump)
Help on built-in function dump in module cPickle:

dump(...)
    dump(obj, file, protocol=0) -- Write an object in pickle format to the given file.

    See the Pickler docstring for the meaning of optional argument proto.
0
задан thus 2 March 2019 в 09:47
поделиться

1 ответ

Все правила изложены здесь здесь .

Для get это явно нарушает правило «Пропустить ненужные слова». Если метод возвращает что-то, сайт вызова будет знать, что он используется для получения некоторого значения. Вам не нужно повторять эту идею. Вы можете рассмотреть возможность превращения этого в вычисляемое свойство, если параметры не требуются.

Для set иногда это может быть уместно. Если вашему методу нужен только один параметр и имеется соответствующий метод получения,

func getFoo() -> Int {
    ...
}

func setFoo(_ foo: Int) {
    ...
}

Это довольно хороший признак того, что его можно превратить в вычисляемое свойство:

var foo: Int {
    get { ... }
    set { ... }
}

Хороший пример где уместно иметь set - метод UIButton.setTitle. Он принимает два параметра, поэтому вычисляемое свойство не будет работать.

Для is это явно соответствует правилу «Использование булевых методов и свойств следует читать как утверждения о получателе». Так что да, вы должны использовать его для логических членов.

0
ответ дан Sweeper 2 March 2019 в 09:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: