2014-09-27 5 views
0

Я получаю тонну ошибок в этом коде, которые не делают абсолютно никакого смысла вообще:Swift: много ошибок в последовательных если заявления

import UIKit 

func remove(input: String) -> String { 
    if countElements(input) > 1 && (input as NSString).substringWithRange(NSRange(location: 0, length: 1) = " " { 
     return remove(input.substringFromIndex(1)) 
    } else if (countElements(input) > 1) && " " = ((input as NSString).substringFromIndex(countElements(input) - 1)) { 
     return remove(input.substringToIndex(countElements(input) - 1)) 
    } else { 
     return input 
    } 
} 

remove("hello") 

Ошибки:

Line 6 - Expected ',' separator 
Line 6 - Expected Expression in list of expressions 
Line 10 - Expected '{' after 'if' condition 
Line 11 - Expected ')' in expression list 
Line 13 - Ambiguous use of 'remove' 

Эти ошибки не имеют никакого смысла. Может кто-то указать мне верное направление?

+0

Является ли строка 6 той, которая начинается с первого 'else if'? –

+0

Да, строка 6 является единственной, которая начинается с 'else if'. – CaptainForge

+0

Большинство c-подобных языков требуют, чтобы вы вставляли круглые скобки вокруг условного выражения, которое вы не делали в своем первом 'if'. –

ответ

2
(input as NSString).substringWithRange(NSRange(location: 0, length: 1) = " " 

Это неполное выражение и неправильное использование оператора равенства.

(input as NSString).substringWithRange(NSRange(location: 0, length: 1)) == " " 
                    ^^ 

Я добавил ) завершить вызов substringWithRange и другой = для проверки равенства, как проставление на уступки.

Это неправильное использование равенства и оператора присваивания также происходит в else if.

+0

Спасибо - Исправлены четыре ошибки, но еще два, и последний (тот, что на линии 13) также все еще существует. ____ Строка 5: Невозможно вызвать 'remove' с аргументом типа 'String' ___ Строка 7: Невозможно вызвать 'remove' с аргументом типа 'String'. Рекурсия не работает в Swift? Или я не правильно называю свои функции? – CaptainForge

+0

Я также внес изменения в строку «else if», когда я получил ошибки выше. – CaptainForge

+0

Вы имя функции 'remove' сталкивается с существующей функцией. Я бы рекомендовал переименовать его. – mtaylor

Смежные вопросы