Swift中基本類型的轉換

來源:互聯網
上載者:User

標籤:blog   使用   strong   io   for   cti   ar   div   

最近上手學習了Swift的語言,諳習JS的我感覺非常順眼,在此記錄下我的學習過程吧.

因為我對Objective-c接觸的不多,所以在oc裡頭使用的東西目前我可能還有很多不知道他的存在.

最近在用swift寫了一些小樣本app,很多地方都用到了基本類型的轉換,但是我發現他居然沒有Integer.parse()這樣的東西,所以還是摸索了一番.

ps: 我使用的版本是xCode6 bate4(其他版本可能實現又差別)

OK,talk is chaep, show you the code!

擴充Double,用於保留幾位小數的操作,比如Double.format(“.2″)保留兩位,其他的也和這個類似
extension Double {    //轉換    func format(f: String) -> String {       return NSString(format: "%\(f)f", self)    }}

 Int -> Double、Float、String

var i:Int = 1Double(i)// 1.0Float(i)// 1.0i.bridgeToObjectiveC().stringValue// "1"

 String -> Int、Doubel、Float

var s:String = "1.9d2d"s.toInt()//nils.bridgeToObjectiveC().integerValue// 1s.bridgeToObjectiveC().doubleValue// 1.9s.bridgeToObjectiveC().floatValue// 1.89999999...

 

這裡的轉換規則有些類似JS中的轉換,比如:

  1. 當字串第一位不為數字,轉為Double(Int)時就會是0,
  2. 當字串第一位為數字,直接轉換為數字,直到遇到非數字字元停止,數值為非數字字元之前的數字
Double、Float、Int -> String
var d:Double = 1.09d.bridgeToObjectiveC().stringValue// "1.09"d.format(".1")//根據extension Double 擴充的方法(四捨五入) -> "1.1"var f:Float = 1.09f.bridgeToObjectiveC().stringValue// "1.09"
基本規則:
  1. 不能直接用String(Int)進行轉換
  2. Int可以直接使用Double(Int)、Float(Int)
  3. 大部分的基本類型轉換都是用bridgeToObjectiveC()函數處理

 

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.