﻿1
00:00:04,150 --> 00:00:05,500
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,500 --> 00:00:11,080
‫ในการบรรยายนี้ เราจะดูหมุดเล็กๆ เหล่านี้และสีต่างๆ ที่พวกมันเข้ามา และเข้าใจว่าสิ่งเหล่านี้เป็นประเภทข้อมูลที่แตกต่างกัน

3
00:00:11,080 --> 00:00:17,470
‫ที่จำกัดสิ่งที่เราสามารถเสียบเข้าไปได้

4
00:00:17,830 --> 00:00:23,470
‫มาดูว่าประเภทข้อมูลหมายถึงอะไร

5
00:00:23,650 --> 00:00:34,930
‫ดังนั้น คำจำกัดความของประเภทข้อมูลที่ใช้การได้จริงคือมันแสดงข้อมูลบางส่วนในรูปแบบไบนารีในหน่วยความจำของคอมพิวเตอร์ของคุณ

6
00:00:35,410 --> 00:00:42,730
‫และยังอาจเป็นเพียงวิธีการจำกัดสิ่งที่เราสามารถทำได้กับข้อมูลชิ้นนี้

7
00:00:42,730 --> 00:00:46,510
‫ดังนั้นจึงไม่จำเป็นต้องเกี่ยวกับการแสดงแทนที่แตกต่างกันเสมอไป

8
00:00:46,510 --> 00:00:55,690
‫และคุณสามารถคิดได้ว่าเป็นรูปร่างของข้อมูลในแง่ที่ว่าหมุดสี่เหลี่ยมไม่สามารถใส่ลงในรูกลมได้

9
00:00:55,690 --> 00:01:00,730
‫ดังนั้นเราจึงไม่สามารถรับข้อมูลผิดประเภทไปยังพินที่ไม่ถูกต้องได้

10
00:01:01,850 --> 00:01:04,370
‫เรามาดูตัวอย่างของประเภทข้อมูลกัน

11
00:01:04,370 --> 00:01:07,610
‫มีจำนวนเต็ม ซึ่งเป็นตัวอย่างคลาสสิก

12
00:01:07,610 --> 00:01:16,760
‫จำนวนเต็มเป็นจำนวนเต็ม ดังนั้นจึงมีค่าเช่น 223 -14 แต่ไม่ใช่ค่าเท่ากับ 1 2.

13
00:01:16,760 --> 00:01:23,000
‫นั่นจะเป็นทศนิยมซึ่งย่อมาจากเลขทศนิยม

14
00:01:23,060 --> 00:01:28,940
‫โดยพื้นฐานแล้วนี่คือตัวเลขที่คุณมีจุดทศนิยม และตัวเลขเหล่านี้อาจมีขนาดใหญ่หรือเล็กมาก

15
00:01:28,940 --> 00:01:33,650
‫แต่ที่สำคัญ มันไม่ใช่จำนวนเต็ม

16
00:01:33,650 --> 00:01:35,390
‫พวกเขาสามารถเป็นลบได้เช่นกัน

17
00:01:35,690 --> 00:01:36,860
‫แล้วก็มีสตริง

18
00:01:36,860 --> 00:01:42,200
‫เราเคยเจอเรื่อง strings มาก่อน strings เป็นแค่โปรแกรมเมอร์พูดแทนข้อความ

19
00:01:42,200 --> 00:01:44,390
‫และโดยพื้นฐานแล้วเป็นประเภทข้อมูล

20
00:01:44,390 --> 00:01:49,970
‫เป็นวิธีการจัดเก็บข้อความบางส่วนในหน่วยความจำเพื่อให้สามารถเป็นอะไรก็ได้ที่คุณชอบ

21
00:01:49,970 --> 00:01:50,210
‫จริงๆ.

22
00:01:50,210 --> 00:01:51,170
‫สวัสดีบ๊อบ

23
00:01:51,170 --> 00:01:57,650
‫คุณรู้ไหม อะไรก็ตาม สิ่งเหล่านี้ ข้อความทั้งหมดบนหน้าจอของฉันเป็นสตริง อาจอยู่ที่ไหนสักแห่งในหน่วยความจำของคอมพิวเตอร์

24
00:01:58,040 --> 00:02:03,320
‫และสุดท้ายก็มีลูกบอลที่สั้นสำหรับบูลีน และมีค่าที่เป็นไปได้เพียงสองค่า

25
00:02:03,320 --> 00:02:04,760
‫จริงหรือเท็จ

26
00:02:05,060 --> 00:02:13,040
‫ตอนนี้ประเภทข้อมูลเหล่านี้ยอดเยี่ยม แต่คุณไม่สามารถแสดงทั้งเกมด้วยสิ่งง่ายๆ แบบนั้นได้ใช่ไหม

27
00:02:13,040 --> 00:02:19,280
‫คุณสามารถทำได้ถ้าคุณเริ่มจัดกลุ่มเข้าด้วยกันเป็นสิ่งของ เช่น วัตถุ

28
00:02:19,280 --> 00:02:23,450
‫เมื่อคุณจัดกลุ่มพวกมันเข้าด้วยกันเป็นวัตถุ พวกมันจะเริ่มมีความหมายมากขึ้น

29
00:02:23,450 --> 00:02:28,130
‫คุณสามารถมีจำนวนเต็มเพื่อแสดงถึงอายุ คุณสามารถมีทุ่นเพื่อแสดงคะแนนประสบการณ์ สิ่งต่างๆ

30
00:02:28,130 --> 00:02:29,390
‫เหล่านั้นได้

31
00:02:29,390 --> 00:02:36,170
‫และจุดหนึ่งที่ควรทราบก็คือ เช่นเดียวกับวัตถุ เรามีสิ่งต่าง ๆ ในพิมพ์เขียวที่เรียกว่า structs

32
00:02:36,170 --> 00:02:38,060
‫และอย่าสับสนที่นี่

33
00:02:38,060 --> 00:02:44,420
‫โดยพื้นฐานแล้ว struct ที่มากเกินไปนั้นเหมือนกับอ็อบเจกต์ เว้นแต่ว่าโดยปกติแล้วจะมีขนาดค่อนข้างเล็ก และเราไม่ได้ใช้การอ้างอิง

34
00:02:44,420 --> 00:02:50,780
‫เราเพียงแค่ส่งต่อพวกมันไปรอบๆ และคัดลอกมันไปรอบๆ ในหน่วยความจำโดยไม่ต้องกังวลกับมัน เพราะมันเล็กมาก

35
00:02:50,960 --> 00:02:55,670
‫และชนิดข้อมูลอย่างที่เรากล่าวคือรูปร่างของข้อมูลของเรา

36
00:02:56,120 --> 00:02:58,730
‫ลองมาดูตัวอย่างโครงสร้างของวัตถุกัน

37
00:02:58,730 --> 00:03:01,040
‫ลองนึกภาพว่าเรามีนักผจญภัยของเรา

38
00:03:01,040 --> 00:03:03,470
‫นักผจญภัยของเราอาจมีหน้าตาประมาณนี้

39
00:03:03,470 --> 00:03:05,180
‫นี่คือรูปร่างของข้อมูล

40
00:03:05,180 --> 00:03:10,970
‫มีเลขจำนวนเต็มเพื่อแสดงระดับและจำนวนลอยเพื่อแสดงคะแนนประสบการณ์

41
00:03:10,970 --> 00:03:17,630
‫ตอนนี้ คุณอาจมีอินสแตนซ์ของนักผจญภัยหลายตัวที่อยู่ในคลาสนักผจญภัยเดียวกัน ดังนั้นพวกมันจึงต้องมีรูปร่างของข้อมูลเหมือนกัน

42
00:03:17,630 --> 00:03:22,520
‫แต่ไม่จำเป็นต้องมีเนื้อหาของข้อมูลเหมือนกัน

43
00:03:22,520 --> 00:03:28,280
‫คุณสามารถเห็นได้ที่นี่ว่านักผจญภัยคนที่สองมีระดับ 100 และด้วยเหตุผลบางอย่างคะแนนประสบการณ์เป็นลบห้า

44
00:03:28,280 --> 00:03:35,750
‫แต่อย่าลืมว่าคุณสามารถมีประเภทที่แตกต่างกันได้โดยการมีวัตถุประเภทอื่นเช่นเครื่องเล่น

45
00:03:35,750 --> 00:03:37,940
‫และที่นี่คุณสามารถเห็นรูปร่างที่แตกต่างกัน

46
00:03:37,940 --> 00:03:47,240
‫สองสิ่งนี้คือการผจญภัยและผู้เล่นไม่ใช่ประเภทที่เข้ากันได้ คุณรู้หรือไม่ว่าผู้เล่นเหล่านี้มีค่าต่างกันที่เก็บไว้ในนั้น

47
00:03:47,240 --> 00:03:52,790
‫พวกเขามีชื่อผู้เล่น พวกเขาอาจจะใช้คอนโทรลเลอร์หรือไม่ก็ได้ เป็นข้อมูลบางส่วนในนั้น

48
00:03:52,790 --> 00:03:55,880
‫ตอนนี้เรามาดูโครงสร้างบางอย่างที่เราเคยเห็นในอดีตกัน

49
00:03:55,880 --> 00:04:00,440
‫ย้ำอีกครั้งว่าโครงสร้างและอ็อบเจกต์ใช้แทนกันได้ไม่มากก็น้อย ยกเว้นขนาด

50
00:04:00,620 --> 00:04:06,950
‫อันแรกที่เราเคยเห็นมาหลายครั้งแล้วคือเวกเตอร์ และเวกเตอร์ก็ไม่มีอะไรนอกจากลอยสามอัน

51
00:04:06,950 --> 00:04:11,180
‫นั่นคือทั้งหมดที่เป็นทุ่น X, Y และ Z ซึ่งสามารถใช้แทนตำแหน่งได้

52
00:04:11,180 --> 00:04:16,970
‫นอกจากนี้ยังสามารถใช้เพื่อแสดงขนาดหรือเราใช้เมื่อเราป้อนแรงกระตุ้นลงในโหนดแรงกระตุ้น

53
00:04:16,970 --> 00:04:18,380
‫ADD ของเรา

54
00:04:18,860 --> 00:04:21,110
‫อีกสิ่งหนึ่งที่เราเห็นในการผ่านคือ rotator

55
00:04:21,110 --> 00:04:28,400
‫ตอนนี้สังเกตว่าตัวหมุนนี้เป็นเพียงสามทุ่น แต่นั่นไม่ได้หมายความว่าทั้งสองประเภทนี้เข้ากันได้

56
00:04:28,400 --> 00:04:36,110
‫เราสามารถตั้งชื่อให้ struct ต่างกันได้ เพื่อที่เราจะได้ช่วยตัวเองให้พ้นจากการใช้โดยไม่ได้ตั้งใจในสถานการณ์ที่เราไม่ควร

57
00:04:36,740 --> 00:04:43,490
‫และเราสามารถรวมสิ่งเหล่านี้เข้าด้วยกัน และสร้างโครงสร้างประกอบที่ใหญ่ยิ่งขึ้นไปอีก

58
00:04:43,490 --> 00:04:49,070
‫ซึ่งก็คือการเปลี่ยนรูป ซึ่งเป็นตำแหน่ง การหมุน และขนาดของนักแสดงในฉาก

59
00:04:49,070 --> 00:04:58,370
‫คุณจะเห็นได้ว่านี่คือโครงสร้างที่ประกอบขึ้นจากโครงสร้างอื่นๆ และโดยพื้นฐานแล้วคุณสามารถซ้อนสิ่งเหล่านี้ได้มากเท่าที่คุณต้องการและมีโครงสร้างภายในวัตถุและอื่นๆ

60
00:04:58,370 --> 00:04:59,990
‫พวกเขาสามารถซับซ้อนได้

61
00:05:00,380 --> 00:05:03,890
‫มาดูวัตถุบางอย่างที่เราเคยเห็นในอดีตกัน

62
00:05:03,890 --> 00:05:06,980
‫เราได้ดูวัตถุที่เป็นนักแสดงแล้ว

63
00:05:06,980 --> 00:05:08,870
‫เรารู้ว่านักแสดงเป็นวัตถุประเภทหนึ่ง

64
00:05:09,380 --> 00:05:11,840
‫เราเคยเห็นนักแสดงที่เป็นคิวบ์

65
00:05:11,840 --> 00:05:13,490
‫นี่เป็นวัตถุอีกประเภทหนึ่ง

66
00:05:13,490 --> 00:05:19,340
‫เราได้เห็นแล้วว่าโพรเจกไทล์ของเราเป็นวัตถุประเภทหนึ่งเช่นกัน และเป็นนักแสดง

67
00:05:19,340 --> 00:05:24,680
‫และเราได้เห็นแล้วว่าเรามีองค์ประกอบเกี่ยวกับนักแสดงของเรา ซึ่งเป็นวัตถุประเภทหนึ่งด้วย

68
00:05:24,680 --> 00:05:28,040
‫และองค์ประกอบคงที่เป็นตัวอย่างหนึ่งขององค์ประกอบเหล่านี้

69
00:05:28,040 --> 00:05:32,840
‫ดังนั้นเราจึงมีสิ่งเหล่านี้ทั้งหมด และสิ่งเหล่านี้ถูกสร้างขึ้นจากประเภทข้อมูลพื้นฐานเหล่านั้น

70
00:05:32,840 --> 00:05:39,860
‫ลึกลงไป อาจประกอบด้วยโครงสร้างที่ซับซ้อนมากขึ้นในระหว่างนี้ แต่ทั้งหมดเกี่ยวกับประเภทข้อมูลพื้นฐานเหล่านั้น

71
00:05:40,010 --> 00:05:46,280
‫ดังนั้นเมื่อเราไปดูกราฟแบบนี้ เราจะเห็นได้ทันทีด้วยสีที่แรงกระตุ้นนี้เป็นเวกเตอร์

72
00:05:46,280 --> 00:05:53,810
‫เช่น ตำแหน่ง การหมุน และมาตราส่วนที่นี่ เป็นเพียงตัวเลขทศนิยมสามตัว

73
00:05:54,230 --> 00:05:58,640
‫และเรายังสามารถเห็นได้ว่าช่องกาเครื่องหมายการเปลี่ยนแปลงความเร็วสีแดงนี้เป็นบูลีน

74
00:05:58,640 --> 00:06:00,140
‫มันคือคำตอบ ใช่ ไม่ใช่

75
00:06:00,140 --> 00:06:00,890
‫ดังนั้นเราจึงเริ่มต้น

76
00:06:01,090 --> 00:06:07,510
‫เพื่อให้เข้าใจว่าสิ่งเหล่านี้เป็นประเภทข้อมูลที่จำกัดสิ่งที่เราสามารถเสียบเข้าไปได้

77
00:06:08,320 --> 00:06:14,620
‫โดยสรุป สิ่งที่เราเห็นคือชนิดข้อมูลคือรูปร่างของข้อมูลของเรา วัตถุนั้นเป็นเพียงคอลเล็กชันของข้อมูลและการทำงาน

78
00:06:14,620 --> 00:06:19,720
‫ดังที่เราได้กล่าวไปแล้ว โครงสร้างนั้นเป็นวัตถุ แต่มักจะมีขนาดเล็กกว่าเล็กน้อย

79
00:06:19,720 --> 00:06:20,950
‫.

80
00:06:20,950 --> 00:06:23,770
‫และนั่นคือสิ่งที่คุณต้องรู้

81
00:06:23,800 --> 00:06:25,870
‫แล้วพบกันใหม่ในบทเรียนหน้าครับ

