Jenis data pantas


Apabila kita memprogram dalam mana-mana bahasa pengaturcaraan, kita perlu menggunakan pelbagai jenis data untuk menyimpan maklumat yang berbeza.

Jenis data pembolehubah menentukan cara bit yang mewakili nilai tersebut disimpan dalam memori komputer. Anda juga boleh menentukan jenis data pembolehubah apabila mengisytiharkannya.

Semua pembolehubah mempunyai jenis data untuk menentukan jenis data yang boleh disimpan.


Jenis data terbina dalam

Swift menyediakan set jenis data yang sangat kaya Berikut menyenaraikan beberapa jenis data yang biasa digunakan:

Int

<. 🎜 >Secara umumnya, anda tidak perlu menentukan panjang integer secara khusus. Swift menyediakan jenis integer khas

dengan panjang yang sama dengan panjang perkataan asli platform semasa: Int

  • Pada platform 32-bit,

    dan Int mempunyai sama panjang. Int32

  • Pada platform 64-bit,

    dan Int adalah sama panjang. Int64

Melainkan anda memerlukan integer dengan panjang tertentu, secara amnya menggunakan

sudah memadai. Ini meningkatkan ketekalan kod dan kebolehgunaan semula. Walaupun pada platform 32-bit, julat integer yang Int boleh disimpan ialah Int~-2,147,483,648, yang cukup besar pada kebanyakan masa. 2,147,483,647

UInt

Swift juga menyediakan jenis istimewa yang tidak ditandatangani

, yang panjangnya sama dengan panjang perkataan asli platform semasa: UInt

  • Pada platform 32-bit,

    dan UInt adalah sama panjang. UInt32

  • Pada platform 64-bit,

    dan UInt adalah sama panjang. UInt64

Nota:

Cuba untuk tidak menggunakan
melainkan anda benar-benar perlu menyimpan integer yang tidak ditandatangani dengan panjang yang sama dengan panjang perkataan asli platform semasa. Kecuali dalam kes ini, lebih baik menggunakan UInt walaupun nilai yang anda ingin simpan diketahui bukan negatif. Penggunaan seragam Int boleh meningkatkan kebolehgunaan semula kod, mengelakkan penukaran antara jenis nombor yang berbeza dan sepadan dengan jenis inferens nombor Sila rujuk Jenis Keselamatan dan Jenis Inferens. Int

Nombor titik terapung

Nombor titik terapung ialah nombor dengan bahagian perpuluhan, seperti

, 3.14159 dan 0.1. Jenis titik terapung -273.15

mewakili julat yang lebih besar daripada jenis integer dan boleh menyimpan nombor yang lebih besar atau lebih kecil daripada jenis

. Swift menyediakan dua jenis nombor titik terapung yang ditandatangani: Int

  • mewakili nombor titik terapung 64-bit. Gunakan jenis ini apabila anda perlu menyimpan nombor titik terapung yang sangat besar atau berketepatan tinggi. Double

  • mewakili nombor titik terapung 32-bit. Jenis ini boleh digunakan jika keperluan ketepatan tidak tinggi. Float

Nota:


sangat tepat dan mempunyai sekurang-kurangnya 15 digit, manakala Double mempunyai sekurang-kurangnya 6 digit. Jenis yang anda pilih bergantung pada julat nilai yang perlu dikendalikan oleh kod anda. Float

Nilai Boolean

Swift mempunyai jenis Boolean asas yang dipanggil Bool. Nilai Boolean merujuk kepada nilai logik kerana ia hanya boleh benar atau salah. Swift mempunyai dua pemalar Boolean, benar dan salah.

String

Rentetan ialah koleksi jujukan aksara, contohnya:

"Hello, World!"

Watak

Watak merujuk kepada satu huruf, contohnya:

"C"

Jenis pilihan

Gunakan jenis pilihan (pilihan) untuk mengendalikan situasi di mana nilai mungkin tiada. Jenis pilihan mewakili sama ada nilai atau tiada nilai.



Julat nilai

Jadual berikut menunjukkan ruang storan jenis pembolehubah yang berbeza, dan nilai maksimum dan minimum jenis pembolehubah:

类型大小(字节)区间值
Int81 字节-127 到 127
UInt81 字节0 到 255
Int324 字节-2147483648 到 2147483647
UInt324 字节0 到 4294967295
Int648 字节-9223372036854775808 到 9223372036854775807
UInt648 字节0 到 18446744073709551615
Float4 字节1.2E-38 到 3.4E+38 (~6 digits)
Double8 字节2.3E-308 到 1.7E+308 (~15 digits)

Alias ​​jenis

Alias ​​jenis mentakrifkan nama lain untuk jenis alias jenis semasa ditakrifkan menggunakan kata kunci typealias. Format sintaks adalah seperti berikut:

typealias newname = type

Sebagai contoh, yang berikut mentakrifkan jenis alias Int sebagai Kaki:

typealias Feet = Int

Sekarang, kita boleh mentakrifkan pembolehubah melalui alias:

import Cocoa

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

Kami menggunakan pelaksanaan taman permainan Hasil keluaran program di atas ialah:

100

Keselamatan jenis

Swift ialah bahasa jenis selamat.

Oleh kerana Swift selamat jenis, ia menjalankan semakan jenis apabila menyusun kod anda dan menandakan jenis yang tidak sepadan sebagai ralat. Ini membolehkan anda mencari dan membetulkan pepijat awal semasa pembangunan.

import Cocoa

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

Atur cara di atas akan melaporkan ralat dalam Xcode:

error: cannot assign value of type 'String' to type 'Int'
varA = "This is hello"

Ini bermakna rentetan 'String' tidak boleh diberikan kepada pembolehubah 'Int'.


Taip inferens

Semakan jenis boleh membantu anda mengelakkan ralat apabila anda perlu berurusan dengan nilai jenis yang berbeza. Walau bagaimanapun, ini tidak bermakna anda perlu menyatakan jenis secara eksplisit setiap kali anda mengisytiharkan pemalar atau pembolehubah.

Jika anda tidak menyatakan jenis secara eksplisit, Swift menggunakan inferens jenis untuk memilih jenis yang sesuai.

Sebagai contoh, jika anda menetapkan nilai 42 kepada pemalar baharu dan tidak menunjukkan jenis, Swift boleh membuat kesimpulan bahawa jenis pemalar ialah Int kerana nilai awal yang anda tetapkan ia kelihatan seperti integer:

let meaningOfLife = 42
// meaningOfLife 会被推测为 Int 类型

Begitu juga, jika anda tidak menentukan jenis untuk literal titik terapung, Swift akan membuat kesimpulan bahawa anda mahu Double:

let pi = 3.14159
// pi 会被推测为 Double 类型

Apabila membuat kesimpulan jenis nombor titik terapung, Swift akan sentiasa memilih Double daripada Float.

Jika kedua-dua integer dan nombor titik terapung muncul dalam ungkapan, ia akan disimpulkan sebagai Jenis Ganda:

let anotherPi = 3 + 0.14159
// anotherPi 会被推测为 Double 类型

Nilai asal 3 tidak mempunyai pengisytiharan jenis eksplisit dan perkataan titik terapung muncul dalam ungkapan literal, jadi ungkapan itu akan disimpulkan sebagai jenis Double.

Instance

import Cocoa

// varA 会被推测为 Int 类型 
var varA = 42
print(varA)

// varB 会被推测为 Double 类型  
var varB = 3.14159
print(varB)

// varC 也会被推测为 Double 类型   
var varC = 3 + 0.14159
print(varC)

melaksanakan kod di atas, dan hasil output ialah:

42
3.14159
3.14159