Кто-то может сказать мне, какой Строгий контроль типов и средства слабого контроля типов и какой лучше?

Проверено на сервере Ubuntu 10.04. Я надеюсь, что это также поможет вам в Arch Linux.

В PHP:


В файле Python test.py проверьте этот текст в первой строке: (см. Shebang объясните) :

#!/usr/bin/env python

Также файл Python должен иметь правильные привилегии (выполнение для пользователя www-data / apache, если PHP-скрипт выполняется в браузере или через завиток) и / или должен быть «исполняемым». Также все команды в файле .py должны иметь правильные привилегии.

chmod +x myscript.py

37
задан Harley Holcombe 27 November 2008 в 21:09
поделиться

4 ответа

Это будет ответами теории, заботившимися о, но стороной практики, кажется, пропустили...

Строгий контроль типов означает, что Вы не можете использовать один тип переменной, где другой ожидается (или имейте ограничения на выполнение так). Слабый контроль типов означает, что можно смешать различные типы. В PHP, например, можно смешать числа и строки, и PHP не будет жаловаться, потому что это - язык со слабым контролем типов.

$message = "You are visitor number ".$count;

, Если бы это было со строгим контролем типов, необходимо было бы преобразовать $count от целого числа до строки, обычно с любым с кастингом:

$message = "you are visitor number ".(string)$count;

... или функция:

$message = "you are visitor number ".strval($count);

, Что касается которого лучше, это субъективно. Защитники строгого контроля типов скажут Вам, что он поможет Вам избежать, чтобы некоторые ошибки и/или ошибки и справка передали цель переменной и т.д. Они также скажут Вам, что защитники слабого контроля типов назовут строгий контроль типов" ненужный пух языка, который представляется бессмысленный здравым смыслом ", или что-то подобное. Как член партии группы слабого контроля типов, я должен был бы сказать, что у них есть мое число..., но у меня есть их также, и я могу поместить его в строку:)

53
ответ дан JoeBloggs 23 September 2019 в 20:40
поделиться

"Строгий контроль типов" и его противоположный "слабый контроль типов" довольно слабы в значении, частично начиная с понятия того, что считается "сильным", может варьироваться в зависимости от того, кого Вы спрашиваете. Например, C был назван и "со строгим контролем типов" и "со слабым контролем типов" различными авторами, он действительно зависит от того, с чем Вы сравниваете его.

Обычно систему типов нужно считать более сильной, если она может выразить те же ограничения как другой и т.д. Довольно часто две системы типов не быть сопоставимыми, хотя - можно было бы иметь функции другой, недостает и наоборот. Любое обсуждение относительных преимуществ тогда до персонального вкуса.

Наличие более сильной системы типов означает, что или компилятор или время выполнения сообщат о большем количестве ошибок, который обычно является хорошей вещью, хотя это могло бы прибыть за счет необходимости предоставить больше информации о типе вручную, которую можно было бы считать усилием, не стоящим. Я утверждал бы, что "строгий контроль типов" обычно лучше, но необходимо посмотреть на стоимость.

также важно понять, что "со строгим контролем типов" часто неправильно используется вместо или даже "введенной декларации "со статическим контролем типов"". "Со статическим контролем типов" означает, что существуют проверки типа во время компиляции, "декларация, введенная", означает, что типы объявляются явно. Ввод декларации является, вероятно, самым известным способом сделать систему типов более сильной (думайте Java), но можно добавить силу другими средствами, такими как вывод типа.

14
ответ дан Peter Becker 23 September 2019 в 20:40
поделиться

Я хотел бы повторить тот слабый контроль типов, не то же как динамический контроль типов.

Это - довольно правильно написанная статья о предмете, и я определенно рекомендовал бы дать ему чтение, если Вы не уверены в различиях между сильными, слабыми, статическими и динамическими системами типов. Это детализирует различия намного лучше, чем может ожидаться в коротком ответе и имеет некоторые очень поучительные примеры.

http://en.wikipedia.org/wiki/Type_system

5
ответ дан Greg Sexton 23 September 2019 в 20:40
поделиться

Слабый контроль типов означает, что Вы не определяете то, что вводит переменную, и строгий контроль типов означает предоставление строгого типа каждой переменной.

у Каждого есть его преимущества со слабым контролем типов (или динамический контроль типов, как это часто называют), будучи более гибким и требуемым меньше кода от программиста. Строгий контроль типов, с другой стороны, требует большего количества работы от разработчика, но в ответ это может предупредить Вас многих ошибок при компиляции кода перед выполнением его. Динамический контроль типов может задержать открытие этих простых проблем, пока код не выполнен.

В зависимости от задачи под рукой, слабый контроль типов может быть лучше, чем строгий контроль типов, или наоборот, но это - главным образом вопрос вкуса. Слабый контроль типов является наиболее часто используемым в языках сценариев, в то время как строгий контроль типов используется на наиболее скомпилированных языках.

-2
ответ дан wvdschel 23 September 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: