Weak typing

ใน PHP เขียนแบบนี้

<?php echo 10 + "20"; ?>

ผลลัพธ์คือ

30

ใน Python เขียนแบบนี้

print 10 + "20"

ผลคือ

Traceback (most recent call last):
  File "weak.py", line 1, in 
    print "10" + 20
TypeError: cannot concatenate 'str' and 'int' objects

เท่าที่ผมเข้าใจแบบนี้คือข้อแตกต่างกันระหว่าง strongly typing กับ weak typing ถ้าเป็น weak typing แทนที่มันจะสร้าง exception หรือรายงานความผิดพลาด หรือสร้าง exception ออกมา มันก็แปลง (cast) ให้เอง โดยที่ไม่ได้บอกอะไร

เพิ่มเติม 1: จากเหตุผลข้างบน ทำให้ type system ของ Python ไม่ใช่ weak typing เพราะว่ามันไม่แปลง type ให้ แต่โยน exception ออกมาแทน ต่างจาก PHP ที่ string กับ integer ก็บวกกันออกมาเป็น integer ได้

2 thoughts on “Weak typing

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s