Подтвердить что ты не робот

Go: как я могу изменить тип итератора цикла for?

Go использует int для итератора по умолчанию из того, что я могу сказать, за исключением того, что я хочу uint64. Я не могу найти способ изменить тип итератора цикла в Go. Есть ли способ сделать это inline с инструкцией for? Тип int по умолчанию вызывает проблемы, когда я пытаюсь что-то сделать в цикле, например mod mod (%).

func main() {                                                                                                                               
    var val uint64 = 1234567890                                                 
    for i:=1; i<val; i+=2 {  
        if val%i==0 {
        }                                        
    }                                                                          
} 

./q.go:7: invalid operation: i < val (mismatched types int and uint64)
./q.go:8: invalid operation: val % i (mismatched types uint64 and int)
4b9b3361

Ответ 1

Вы имеете в виду что-то вроде этого?

for i, val := uint64(1), uint64(1234567890); i<val; i+=2 {
    // your modulus operation
} 

http://play.golang.org/p/yAdiJu4pNC