How to call interface over array of actors?

How can I properly call interface over array of actors? I’m searching for most simple example, something in this terms:

TArray<AActor*> MyActors;
float sumValue;
....
for (auto act: MyActors)
	{
		ISumInterface* sumInterface = Cast<ISumInterface>(act);
		if (sumInterface) {
			sumValue += sumInterface->SumFunction(); // SumFunction does not take any arguments but return float value.
		}
	}

Is above code valid? I’m trying to use it from UObject to call this function on other actors that implement that particular interface and obtain results.