Pointer to pointer parameter in Swift function

Rainier Wolfcastle

How do you do pointers to pointers in Swift? In Objective-C I had a function which I would call recursively so that I could keep track of the number of recursions, but I'm stumped as to how to achieve this in Swift.

NSNumber *recursionCount = [NSNumber numberWithInteger:-1];
[self doRecursion:&recursionCount];

- (void)doRecursion:(NSNumber **)recursionCount {
    // I'm sure this is a terrible way to increment, but I have limited Objective-C experience
    // and this worked, so I moved on after failing to find a decent var++ equivalent :-(
    int addThis = (int)i + 1;
    *recursionCount = [NSNumber numberWithInt:[*recursionCount intValue] + addThis];
    [self doRecursion:recursionCount];
}

In the process of cutting this sample down for this post, I've ended up creating a never-ending loop, but you get the idea on how I'm remembering the value with each recursion.

Does anybody know how to do this in Swift? Thanks.

Antonio

Usage of pointers in swift is highly discouraged.

To change a variable passed as argument to a function, you have to pass it by reference (similar to passing its pointer) using the inout modifier. I've changed the logic of your function to stop after 10 iterations:

func doRecursion(inout recursionCount: Int) -> Int {
    if (recursionCount < 10) {
        ++recursionCount
         doRecursion(&recursionCount)
    }

    return recursionCount
}

Then you can call using:

var counter: Int = -1
let x = doRecursion(&counter) // Prints 10 in playground

Suggested reading: In-Out Parameters

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Pointer to Pointer to Void Function Parameter

From Dev

PInvoke function with pointer to pointer parameter

From Dev

Function Pointer as Function Parameter

From Dev

void pointer in function parameter

From Dev

Integer pointer as parameter of function

From Dev

void pointer in function parameter

From Dev

Swift pointer to pointer to const char parameter

From Dev

Function with void *a and pointer function as parameter

From Dev

Pass Function Pointer as Parameter where the function pointer's parameter is a child of the function's function pointer parameter

From Java

Function pointer parameter without asterisk

From Dev

Template function pointer as a template parameter

From Dev

C generic Parameter into Function pointer

From Dev

Template class with function pointer parameter

From Dev

Explicit void pointer as function parameter

From Dev

function pointer parameter with type alias

From Dev

Arduino: struct pointer as function parameter

From Dev

C generic Parameter into Function pointer

From Dev

C ADT function pointer as parameter?

From Dev

Pointer to slice of interfaces in function parameter

From Dev

Pointer to function parameter vs function parameter?

From Dev

Pointer to function parameter vs function parameter?

From Dev

Pointer to pointer in parameter in C

From Dev

Pointer to pointer in parameter in C

From Dev

Swift - Pointer to a Pointer

From Dev

Passing String Address As Parameter To Pointer To Pointer To Char Function

From Dev

Pointer to Function Pointer

From Dev

Function with input of pointer to pointer to

From Dev

Use function pointer parameter inside closure Rust

From Dev

Variadic template with member function pointer as parameter

Related Related

HotTag

Archive