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