LINUX.ORG.RU

История изменений

Исправление Nervous, (текущая версия) :

при правильной разработке нельзя

Так сможет ли компилятор эту правильность проверить, вот в чём вопрос. Я думаю, что нет.

все значения имеют тип, ассоциированные методы, нужные правила преобразования из типа в тип.

Но это ведь ещё не означает, что в коде не творится лютая дичь, не лезущая ни в какие ворота и не поддающаяся пониманию, не так ли? %) Типа

// Returns true if the value is true.
func IsTrue(value bool) bool {
    wut := string(value)
    if len(wut) == 4 {
        return true
    } else {
        return false
    }
}

Синтаксически всё правильно, все типы сходятся, комар носа не подточит. Компилятор доволен. И даже вроде работает, как задумано. Но ведь дичь же?

А теперь представь, что на тебя свалился проект строк тыщ на десять полностью в подобном креативно-изысканном стиле.

Исправление Nervous, :

при правильной разработке нельзя

Так сможет ли компилятор эту правильность проверить, вот в чём вопрос. Я думаю, что нет.

все значения имеют тип, ассоциированные методы, нужные правила преобразования из типа в тип.

Но это ведь ещё не означает, что в коде не творится лютая дичь, не лезущая ни в какие ворота и не поддающаяся пониманию, не так ли? %) Типа

// Returns true if the value is true.
func IsTrue(value bool) bool {
    wut := string(value)
    if len(wut) == 4 {
        return true
    } else {
        return false
    }
}

Синтаксически всё правильно, все типы сходятся, комар носа не подточит. Компилятор доволен. Но ведь дичь же?

А теперь представь, что на тебя свалился проект строк тыщ на десять полностью в подобном креативно-изысканном стиле.

Исходная версия Nervous, :

при правильной разработке нельзя

Так сможет ли компилятор эту правильность проверить, вот в чём вопрос. Я думаю, что нет.

все значения имеют тип, ассоциированные методы, нужные правила преобразования из типа в тип.

Но это ведь ещё не означает, что в коде не творится лютая дичь, не лезущая ни в какие ворота и не поддающаяся пониманию, не так ли? %) Типа

// Returns true if the value is true.
func IsTrue(value bool) bool {
    wut := string(value)
    if len(wut) == 4 {
        return true
    } else {
        return false
    }
}

Синтаксически всё правильно, все типы сходятся, комар носа не подточит. Компилятор доволен. Но ведь дичь же?