如今我也在學習Swift語言,經常去逛不少蘋果社區和論壇,看到了圈子不少奇怪的現象,發現不少人都趕緊去翻譯 Swift書籍 和 發佈Swift的視頻 。他們這種對新知識的探索精神我本人是很佩服的。可是我也以爲語言都沒有發佈幾天,就趕緊去翻譯書籍和Swift視頻,而後講SWift語言多麼優美和多麼好。我我的以爲他們都沒有靜下心來,去敲代碼和研究Swift語言到底好在那裏,而急於去翻譯 未免也太草率了。html
今天主要分享的是 swift中基本類型的 下半部分。若是您對 SWift 中變量和常量 不是很清楚 請移步到 Swift入門篇-基本類型(1)swift
一:定義指定類型的變量post
格式:
var 變量 : 類型 = 變量值
解釋:
直接定義變量的類型(而不是經過變量值 來推斷 變量類型)
例子:學習
// // main.swift // 基本類型2 import Foundation var A:Int = 10 //直接定義 變量A 的類型爲整形 println("A=\(A)") var B:Bool = true//直接定義 變量B 的類型爲布爾類型 println("B=\(B)") var C:String = "SWIFT" //直接定義 變量C 的類型爲字符串類型 println("C=\(C)")
運行結果url
A=10 B=true C=SWIFT
二:定義指定類型的常量spa
格式:
let 常量 : 類型 = 常量值
解釋:
直接定義常量的類型(而不是經過常量值 來推斷 常量類型)
例子:翻譯
// // main.swift // 基本類型2 import Foundation let A:Int = 10 //直接定義 常量A 的類型爲整形 println("A=\(A)") let B:Bool = true//直接定義 常量B 的類型爲布爾類型 println("B=\(B)") let C:String = "SWIFT" //直接定義 常量C 的類型爲字符串類型 println("C=\(C)")
運行結果code
A=10 B=true C=SWIFT
注意點:視頻
var A = 10 和var A:Int = 10 的區別? var A =10 //編譯器直接經過 變量值 10 來推斷 變量A 的類型是整形 var A:Int = 10 //直接指定 A 的類型是整形
三:數據類型htm
①:進製表現方式
格式:
十進制數,無前綴
二進制數,以 0b 爲前綴
八進制數,以 0o 爲前綴
十六進制數,以 0x 爲前綴
注意:
定義的變量或常量 存儲值爲十進制。
例子:
1:十進制表現方式
// // main.swift // 基本類型2 import Foundation var A = 10 /* 1:變量值10 無前綴 表示十進制 2:變量或常量存儲的值必須爲十進制 3:10是十進制直接賦值給變量A */ println("A=\(A)")
運行結果
A=10
2:二進制表現方式:
// // main.swift // 基本類型2 import Foundation var B = 0b1010
/* 1:變量值0b1010 前綴0b表示二進制 2: 變量或常量儲存的值必須爲十進制 3:二進制1010 轉換爲十進制的以後,賦值給變量B */ println("B=\(B)")
運行結果
B=10
3:八進制表現方式
// // main.swift // 基本類型2 import Foundation var C = 0o12 /* 1:變量值0o12 前綴是0o 八進制 2: 變量或常量儲存的值必須爲十進制 3: 八進制12 轉換爲十進制以後,在賦值給變量C */ println("C=\(C)")
運行結果
C=10
4:十六進制
// // main.swift // 基本類型2 import Foundation var D = 0xA /* 1:變量值0xA 前綴是0x 十六進制 2: 變量或常量儲存的值必須爲十進制 3: 十六進制A 轉換爲十進制以後,在賦值給變量C */ println("D=\(D)")
運行結果
D=10
②:整形變現形式
整形 :有符號和無符號類型
有符號類型:Int ,Int8 ,Int32,Int64
無符號類型: UInt ,UInt8 UInt32,UInt64
注意點:若是你的開發環境是32位,那麼Int = Int32
若是你的開發環境是64位,那麼Int = Int64
若是你使用mac OS X Yosemite 10.10和Xcode 6.0 Bate 那麼你的系統是64位的
例子:
有符號的整形
// // main.swift // 基本類型2 import Foundation var A:Int = 10//定義 有符號的整形變量 var B:Int8 = 10 //定義 有符號8位的整形變量 var C:Int32 = 10 //定義 有符號的32位的整形變量 var D:Int64 = 10 //定義 有符號的64位的整形變量 println("A=\(A)") println("B=\(B)") println("C=\(C)") println("D=\(D)")
運行結果
A=10 B=10 C=10 D=10
無符號的變量定義
// // main.swift // 基本類型2 import Foundation var A:UInt = 10//定義 無符號的整形變量 var B:UInt8 = 10 //定義 無符號8位的整形變量 var C:UInt32 = 10 //定義 無符號的32位的整形變量 var D:UInt64 = 10 //定義 無符號的64位的整形變量 println("A=\(A)") println("B=\(B)") println("C=\(C)") println("D=\(D)")
運行結果
A=10 B=10 C=10 D=10
1:有符號和無符號的整形的區別;
說明:無符號的定義的變量值必須爲整數,有符號的定義的變量值能夠爲整數也能夠爲負數
注意點
// // main.swift // 基本類型2 import Foundation var A:Int = 10 //寫法正確: A 爲有符號整形變量,值能夠是整數和負數 var B:Int = -10// 寫法正確: B爲有符號整形變量,值能夠是整數和負數 var C:UInt = 10//寫法正確: C 爲無符號整形變量 值必須爲整形 var D:UInt = -10 //寫法錯誤 C 爲無符號整形變量 值不能爲負數
2:有符號和符號的取值範圍
import Foundation var UInt8Min = UInt8.min //UInt8.min 是求UInt8的最小值 var UInt8Max = UInt8.max //UInt8.max 是求UInt8的最大值 println("UInt8Min=\(UInt8Min),UInt8Max=\(UInt8Max)") var Int8Min = Int8.min //UInt8.min 是求UInt8的最小值 var Int8Max = Int8.max //UInt8.max 是求UInt8的最大值 println("Int8Min=\(Int8Min),Int8Max=\(Int8Max)")
運行結果
UInt8Min=0,UInt8Max=255
Int8Min=-128,Int8Max=127
其餘Int,UInt的取值範圍和上述一直,這裏就不介紹了。
注意的是: 在給UInt8 和Int 8賦值的時候 千萬不要操做他的取值範圍。
例子
// // main.swift // 基本類型2 import Foundation var A:Int8 = 10 //正確 A的取值是10 在 -128至127範圍 var B:Int8 =300 //錯誤;B的取值是300 超過 -128至127範圍
浮點類型;
浮點類型分爲;Float ,Double
說明: Double的取值範圍大於Float類型,而且系統默認是Double類型
例子:
// // main.swift // 基本類型2 import Foundation var A = 12.1 // A是浮點類型 ,沒有明確指定類型,系統默認認爲是Double類型 var B:Float = 12.1 //指定類爲 浮點類型中Float類型。 println("A=\(A),B=\(B)")
運行結果
// // main.swift // 基本類型2 import Foundation var A = 12.0 // A是浮點類型 ,沒有明確指定類型,系統默認認爲是Double類型 var B:Float = 12.0 //指定類爲 浮點類型中Float類型。 println("A=\(A)") println("B=\(B)")
運行結果
A=12.0 B=12.0
例子 2
// // main.swift // 基本類型2 import Foundation var A = 12.1 var B:Double = 12.1 var C:Float = 12.1 println("A=\(A)") println("B=\(B)") println("C=\(C)")
運行結果
A=12.1 B=12.1 C=12.1000003814697
說明:
var A = 12.1 和var B:Double = 12.1 輸出結果相同。即默認是double 類型。而且輸出一位小數。
問題:
var C:Float = 12.1
爲何輸出結果是 C=12.1000003814697 但願你們思考一下??
數字可讀性
例子
下劃線(整形用法)
// // main.swift // 基本類型2 import Foundation var A = 110000 var B = 110_000//下劃線能夠放置任何位置 var C = 1_100_00 /* 1: A ,B,C 輸出結果是相同的 2:用下劃線(_)用來分隔 外數,便於數字可讀性 3: 下劃線(_) 能夠放置N個,可是不能把下劃線(_) 開頭 */ println("A=\(A)") println("B=\(B)") println("C=\(C)")
運行結果
A=110000 B=110000 C=110000
布爾類型:
// // main.swift // 基本類型2 import Foundation var A:Bool = true //bool 類型的取值 只能爲 true false var B:Bool = false println("A=\(A)") println("B=\(B)")
運行結果
A=true B=false
我回陸續把我學習到swift語言的知識寫出來造成一個系列。因爲是新語言,我的理解不免有不足,歡迎給我提出意見。也能夠加我QQ 1436051108一塊兒討論,若是您有什麼問題,也能夠直接在QQ留言發給我,我看到以後第一時間回覆您
最後總結一下。送上一直思惟導圖,做爲文章的結束