Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Naming Convention for Methods and Properties in Swift. Can I use "get", "set" and "is" Keywords?

Tags:

When I create a function in Swift, can I use "get" and "set" words? For instance can I declare a function as func getAuthorizedUsers() instead of func authorizedUsers()? In ObjectiveC get and set keywords are not suggested to use when declaring functions. How about in Swift?

Also, when declaring properties can I use "is" keyword? For instance:

public var isAuthorized: Bool {
    get {            
        return true
    }
}

I have read Swift naming convention documents but I couldn't find the answer of my question. Thank you.

like image 903
thus Avatar asked Mar 02 '19 09:03

thus


People also ask

What naming convention should be used for method names?

Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized. Except for variables, all instance, class, and class constants are in mixed case with a lowercase first letter. Internal words start with capital letters.

What is set and get in Swift?

A getter in Swift allows access to a property, and a setter allows a property to be set.

How do you name a new method?

Method names should answer the question- What does this method do? If you cannot find a good name for a method, think about whether it has a clear intent. Because methods are the means of taking action, the design guidelines require that method names be verbs or verb phrases.


1 Answers

The rules are all outlined here.

For get, that clearly violates the "Omit needless words" rule. If a method returns something, the call site will know that it is used to get some value. You don't need to repeat that idea. You can consider turning this into a computed property if no parameters are required.

For set, it might be appropriate sometimes. If your method only need one parameter and there is a corresponding getter,

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

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

That's a pretty good sign that this can be turned into a computed property:

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

A good example where it is appropriate to have set is the UIButton.setTitle method. It takes in two parameters, so a computed property wouldn't work.

For is, that clearly conforms to the rule "Uses of Boolean methods and properties should read as assertions about the receiver". So yes, you should use it for boolean members.

like image 198
Sweeper Avatar answered Nov 15 '22 03:11

Sweeper