但這些到你是什麼呢? 因此作為紀錄一下
(出處:知乎http://www.zhihu.com/question/19918532/answer/58538334)
1.基礎概念
Program Errors
- trapped errors :導致程式終止,如除以0
- untrapped errors:出錯然繼續執行,但可能跟預期的行為不同,如jump跳錯地址
Forbidden Behaviours
語言設計時,可以定義一組forbidden behaviors,這些必須包含所有的untrapped errors且也可能包含trapped errors
Well behaved、ill behaved
- well behaved:如果成是執行沒有出現forbidden behaviors稱之
- ill behaved:否則稱為ill behaved
2.弱類型、強類型區別
- 強類型(strongly typed) :如果該語言的有成都是well behaved( 也就是沒有出現forbidden behaviors)則稱之
例如:
>>> "1"+2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
- 弱類型(weakly typed):若不是強類型則就為弱類型
例如:
> "1"+2
'12'
例子:
弱类型: C/C++ 、Perl/PHP
强类型:Java/C#、Python、Scheme
强类型:Java/C#、Python、Scheme
沒有留言:
張貼留言