Swift - ประเภทข้อมูล

ในขณะที่ทำการเขียนโปรแกรมด้วยภาษาโปรแกรมใด ๆ คุณจำเป็นต้องใช้ตัวแปรประเภทต่างๆเพื่อจัดเก็บข้อมูล ตัวแปรเป็นเพียงตำแหน่งหน่วยความจำที่สงวนไว้เพื่อเก็บค่า ซึ่งหมายความว่าเมื่อคุณสร้างตัวแปรคุณจะสงวนพื้นที่ในหน่วยความจำไว้

คุณอาจต้องการจัดเก็บข้อมูลประเภทข้อมูลต่างๆเช่นสตริงอักขระอักขระแบบกว้างจำนวนเต็มจุดลอยตัวบูลีนเป็นต้นระบบปฏิบัติการจะจัดสรรหน่วยความจำและตัดสินใจว่าจะจัดเก็บข้อมูลใดในที่สงวนไว้ หน่วยความจำ.

ประเภทข้อมูลในตัว

Swift 4 นำเสนอประเภทข้อมูลในตัวและประเภทข้อมูลที่ผู้ใช้กำหนดให้กับโปรแกรมเมอร์ ประเภทข้อมูลพื้นฐานต่อไปนี้มักใช้บ่อยที่สุดเมื่อประกาศตัวแปร -

  • Int or UInt- ใช้สำหรับจำนวนเต็ม โดยเฉพาะอย่างยิ่งคุณสามารถใช้ Int32, Int64 เพื่อกำหนดจำนวนเต็มลายเซ็น 32 หรือ 64 บิตในขณะที่ UInt32 หรือ UInt64 เพื่อกำหนดตัวแปรจำนวนเต็ม 32 หรือ 64 บิตที่ไม่ได้ลงชื่อ ตัวอย่างเช่น 42 และ -23

  • Float- ใช้เพื่อแสดงตัวเลขทศนิยม 32 บิตและตัวเลขที่มีจุดทศนิยมน้อยกว่า ตัวอย่างเช่น 3.14159, 0.1 และ -273.158

  • Double- ใช้เพื่อแสดงตัวเลขทศนิยม 64 บิตและใช้เมื่อค่าทศนิยมต้องมีขนาดใหญ่มาก ตัวอย่างเช่น 3.14159, 0.1 และ -273.158

  • Bool - นี่แสดงถึงค่าบูลีนซึ่งเป็นจริงหรือเท็จ

  • String- นี่คือชุดอักขระตามลำดับ ตัวอย่างเช่น "สวัสดีชาวโลก!"

  • Character- นี่คือลิเทอรัลสตริงอักขระเดี่ยว ตัวอย่างเช่น "C"

  • Optional - แสดงถึงตัวแปรที่สามารถเก็บค่าหรือไม่มีค่าก็ได้

  • Tuples - ใช้เพื่อจัดกลุ่มค่าหลายค่าในค่าผสมเดียว

เราได้ระบุประเด็นสำคัญบางประการที่เกี่ยวข้องกับประเภทจำนวนเต็มไว้ที่นี่ -

  • บนแพลตฟอร์ม 32 บิต Int มีขนาดเท่ากับ Int32

  • บนแพลตฟอร์ม 64 บิต Int มีขนาดเท่ากับ Int64

  • บนแพลตฟอร์ม 32 บิต UInt มีขนาดเท่ากับ UInt32

  • บนแพลตฟอร์ม 64 บิต UInt มีขนาดเท่ากับ UInt64

  • สามารถใช้ Int8, Int16, Int32, Int64 เพื่อแสดงรูปแบบจำนวนเต็มลงนามในรูปแบบ 8 บิต 16 บิต 32 บิตและ 64 บิต

  • UInt8, UInt16, UInt32 และ UInt64 สามารถใช้เพื่อแสดงรูปแบบ 8 บิต 16 บิต 32 บิตและ 64 บิตของจำนวนเต็มที่ไม่ได้ลงชื่อ

ค่านิยม

ตารางต่อไปนี้แสดงประเภทตัวแปรจำนวนหน่วยความจำที่ใช้ในการจัดเก็บค่าในหน่วยความจำและค่าสูงสุดและต่ำสุดที่สามารถเก็บไว้ในตัวแปรประเภทดังกล่าวคือเท่าใด

ประเภท ความกว้างบิตทั่วไป ช่วงทั่วไป
Int8 1 ไบต์ -127 ถึง 127
UInt8 1 ไบต์ 0 ถึง 255
Int32 4 ไบต์ -2147483648 ถึง 2147483647
UInt32 4 ไบต์ 0 ถึง 4294967295
Int64 8 ไบต์ -9223372036854775808 ถึง 9223372036854775807
UInt64 8 ไบต์ 0 ถึง 18446744073709551615
ลอย 4 ไบต์ 1.2E-38 ถึง 3.4E + 38 (~ 6 หลัก)
สองเท่า 8 ไบต์ 2.3E-308 ถึง 1.7E + 308 (~ 15 หลัก)

พิมพ์นามแฝง

คุณสามารถสร้างชื่อใหม่สำหรับประเภทที่มีอยู่โดยใช้ typealias. นี่คือไวยากรณ์ง่ายๆในการกำหนดประเภทใหม่โดยใช้ typealias -

typealias newname = type

ตัวอย่างเช่นบรรทัดต่อไปนี้สั่งคอมไพเลอร์ว่า Feet เป็นชื่ออื่นสำหรับ Int -

typealias Feet = Int

ตอนนี้การประกาศต่อไปนี้ถูกต้องตามกฎหมายและสร้างตัวแปรจำนวนเต็มที่เรียกว่าระยะทาง -

typealias Feet = Int
var distance: Feet = 100
print(distance)

เมื่อเรารันโปรแกรมข้างต้นโดยใช้สนามเด็กเล่นเราจะได้ผลลัพธ์ดังต่อไปนี้

100

ประเภทความปลอดภัย

Swift 4 เป็นภาษาประเภทที่ปลอดภัยซึ่งหมายความว่าหากส่วนหนึ่งของโค้ดของคุณคาดหวังกับสตริงคุณจะไม่สามารถส่งผ่าน Int ได้โดยไม่ได้ตั้งใจ

เนื่องจาก Swift 4 เป็นประเภทที่ปลอดภัยจึงทำการตรวจสอบประเภทเมื่อรวบรวมโค้ดของคุณและตั้งค่าสถานะประเภทที่ไม่ตรงกันว่าเป็นข้อผิดพลาด

var varA = 42
varA = "This is hello"
print(varA)

เมื่อเราคอมไพล์โปรแกรมข้างต้นจะเกิดข้อผิดพลาดเวลาคอมไพล์ดังต่อไปนี้

main.swift:2:8: error: cannot assign value of type 'String' to type 'Int'
varA = "This is hello"

พิมพ์การอนุมาน

การอนุมานประเภทช่วยให้คอมไพลเลอร์สามารถอนุมานประเภทของนิพจน์เฉพาะโดยอัตโนมัติเมื่อคอมไพล์โค้ดของคุณเพียงแค่ตรวจสอบค่าที่คุณระบุ Swift 4 ใช้การอนุมานประเภทเพื่อหาประเภทที่เหมาะสมดังต่อไปนี้

// varA is inferred to be of type Int
var varA = 42
print(varA)

// varB is inferred to be of type Double
var varB = 3.14159
print(varB)

// varC is also inferred to be of type Double
var varC = 3 + 0.14159
print(varC)

เมื่อเรารันโปรแกรมข้างต้นโดยใช้สนามเด็กเล่นเราจะได้ผลลัพธ์ดังนี้ -

42
3.14159
3.14159