Swift入門篇-基本類型(2)


     現在我也在學習Swift語言,常常去逛很多蘋果社區和論壇,看到了圈子很多奇怪的現象,發現很多人都趕忙去翻譯 Swift書籍 和 發布Swift的視頻 。他們這種對新知識的探索精神我本人是很佩服的。但是我也覺得語言都沒有發布幾天,就趕忙去翻譯書籍和Swift視頻,然后講SWift語言多么優美和多么好。我個人覺得他們都沒有靜下心來,去敲代碼和研究Swift語言到底好在那里,而急於去翻譯 未免也太草率了。

  今天主要分享的是 swift中基本類型的 下半部分。如果您對 SWift 中變量和常量 不是很清楚 請移步到 Swift入門篇-基本類型(1)

  一:定義指定類型的變量

    格式:
     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)")

運行結果

A=10
B=true
C=SWIFT

 

 二:定義指定類型的常量

   格式:

     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)")

運行結果

A=10
B=true
C=SWIFT

注意點:

var A = 10 和var A:Int = 10 的區別?

var A =10 //編譯器直接通過 變量值 10 來推斷 變量A 的類型是整形

var A:Int = 10 //直接指定 A 的類型是整形

 

三:數據類型

①:進制表現方式


格式:

  十進制數,無前綴   二進制數,以 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留言發給我,我看到之后第一時間回復您

 最后總結一下。送上一直思維導圖,作為文章的結束

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM