Он представляет запрос пользователю (необязательный arg
из raw_input([arg])
), получает вход от пользователя и возвращает данные, вводимые пользователем в строку. См. Документы для raw_input()
.
Пример:
name = raw_input("What is your name? ")
print "Hello, %s." % name
Это отличается от input()
тем, что последний пытается интерпретировать ввод, заданный пользователем; обычно лучше избегать input()
и придерживаться raw_input()
и пользовательского кода синтаксического анализа / преобразования.
Примечание: это для Python 2.x
Вы не можете сузить тип общего параметра внутри функции. Поэтому, когда вы проверяете a
, это не укажет компилятору, что такое тип b
. И что еще более важно, он не скажет компилятору, каков должен быть тип возвращаемого значения функции
function add<T extends (number | string)>(a: T, b: T): T {
if (typeof a === 'string' && typeof b === 'string') {
let result = a + b; // result is string, we can apply +
return result as T; // still an error without the assertion, string is not T
} else if (typeof a === 'number' && typeof b === 'number') {
let result = a + b; // result is number, we can apply +
return result as T; // still an error without the assertion, number is not T
}
throw "Unsupported parameter type combination"; // default case should not be reached
}
. В этом случае, возможно, имеется специальная подпись подписи, которая работает на объединении (это означает, что утверждение не является требуется), а публичная подпись - та, которую вы ранее использовали .:
function add<T extends number | string>(a: T, b: T): T
function add(a: number | string, b: number | string): number | string {
if (typeof a === 'string' && typeof b === 'string') {
return a + b;
} else if (typeof a === 'number' && typeof b === 'number') {
return a + b;
}
throw "Unsupported parameter type combination"; // default case should not be reached
}
undefined
? – jcalz 9 July 2018 в 14:57T
является «привет», тогдаadd("hello","hello")
потребуется вернуть значение типа"hello"
, которого оно не будет. Поэтому мы действительно не хотим, чтобы выход былT
, но что-то вродеT extends number ? number : string
, которое, безусловно, реализуемо (хотя в настоящее время анализ потока управления и условные типы плохо взаимодействуют друг с другом, поэтому вам все равно нужны либо утверждения, либо один разрешающий перегрузка) – jcalz 9 July 2018 в 16:11