Swift 5.X——數據類型

  使用任何編程語言都須要用到數據類型,數據類型決定了如何將表明這些值的位存儲到計算機的中。java

1.Int

  Swift 提供了特殊的整數類型Int,長度與當前平臺的原生字長相同:在32位平臺上,IntInt32長度相同。在64位平臺上,IntInt64長度相同。Int8, Int16, Int32, Int64 分別表示 8 位, 16 位, 32 位, 和 64 位的有符號整數形式。另外的,Swift 也提供了一個特殊的無符號類型UInt,但儘可能不要使用UInt。數據庫

1.1.類型的定義

import UIKit

var a:Int = 1//整數類型的定義(變量)
let b:Int = 2//整數類型的定義(常量)

1.2.類型的範圍

import UIKit

print(Int8.min,Int8.max)//-128 127
print(Int16.min,Int16.max)//-32768 32767
print(Int32.min,Int32.max)//-2147483648 2147483647
print(Int64.min,Int64.max)//-9223372036854775808 9223372036854775807
print(Int.min,Int.max)//-9223372036854775808 9223372036854775807

2.Float

2.1.類型的定義

import UIKit

var a:Float = 1.2
let b:Float = 1.5

3.Double

4.Character和String

4.1.類型的定義

import UIKit

var a:Character = "a"//Character
var b:String = "a"//String
var c = "a"//String

//var d:Character = "ab"-error
var e:String = "ab"//String
var f = "ab"//String

var g:Character = "我"//Character
var h:String = "我"//String
var i = "我"//String

//var j:Character = "我是"-error
var k:String = "我是"//String
var l = "我是"//String

  如下是java語言的狀況編程

public class Main {
    public static void main(String[] args) {
        char a='a';
        String b="a";
        System.out.println(getType(a));//class java.lang.Character
        System.out.println(getType(b));//class java.lang.String

        //char c='ab';-error
        String d="ab";
        System.out.println(getType(d));//class java.lang.String

        char e='我';
        //String b="我";-error
        System.out.println(getType(e));//class java.lang.Character

        //char f='我是';-error
        String g="我是";
        System.out.println(getType(g));//class java.lang.String
    }

    public static String getType(Object o){
        return o.getClass().toString();
    }
}

5.布爾型

import UIKit

var a:Bool = true
var b = false//類型判斷:根據內容判斷數據類型

6.可選類型

import UIKit

var a:Int? = 10
if (a==nil) {//nil相似於java中的null
    print("a爲空")
}else{
    print("a=\(a!)")//字符串拼接
}
//輸出:a=10

print(a)//Optional(10)
print(a!)//10。強制取值

6.1.可選項綁定

  做用:可以使用可選項綁定來判斷可選項是否包含值:若是包含值就自動解包,把值賦給一個臨時變量或常量並返回true;不然返回false。swift

import UIKit

var a:Int? = 10//定義可選型變量

if let value = a {//若是a有值,就把a的值給常量value
    print("value的值爲:\(value)")//value的值爲:10
}else{
    print("value沒有值")
}

print(a)//Optional(10)
print(a!)//10  

6.2.隱式展開

import UIKit

var a:Int! = 10//定義了一個變量
a=nil//在計算過程當中b成了nil
print(a)//nil。依然能夠輸出

var b:Int = 10
//b=nil——error

7.元組類型

  元組就是不一樣數據類型的封裝,關係型數據庫中「記錄」的另外一個學術性名稱是「元組」,一條記錄就是一個元組。編程語言

7.1.元組的初始化(方法一)

import UIKit

var a = (1,1.2,"hello","a",true)
var b = a//元組的賦值,傳的是真實的值,不是引用
print(a.0,a.1,a.2,a.3,a.4)//逐個打印
a.0=10//修改元素
print(a.0,a.1,a.2,a.3,a.4)//逐個打印

7.2.元組的初始化(方法二)

import UIKit

var a:(Int,Double,String,Character,Bool) = (1,1.2,"hello","a",true)

7.3.元組的初始化(方法三)

import UIKit

var a = (name1:"hello",name2:true)
print(a.name1,a.name2)//hello true

7.4.元組的初始化(方法四)

import UIKit

var a:(name1:String,name2:Bool) = ("hello",true)
print(a.name1,a.name2)//hello true  

7.5.元組的初始化(方法五)

import UIKit

var (name1,_,name3) = ("hello",10,"world")
print(name1,name3)//hello world

7.6.特殊狀況

import UIKit

var a = ()//警告
//var b:(Int) = ()——error  

7.7.元組比較

import UIKit
 
var a = (1,1.2,"hello","a",true)
var b = (1,1.2,"hello","a",true)
var c = (1,1.1,"hello","a",true)

print(a==b)//true
print(a==c)//false

8.類型別名

import UIKit

typealias dog = Int
var a:dog = 1//Int->dog

9.類型轉換

import UIKit

var a:Int = 10
print(String(10))//10

var b:String = "hello"
print(Int(b))//nil(相似於:null)。由於字符串轉爲Int不必定成功,因此發出警告
print(Int(b) ?? 100)//100。「??」相似於java中的「||」,具備「短路」做用,前面成功則不執行後面;不然執行

print(Double(true),Double(false))//1.0 0.0
print(Bool(0),Bool(1),Bool(2.2))//true。「0」爲「false」,其他都是「true」
相關文章
相關標籤/搜索