zoukankan      html  css  js  c++  java
  • Swift中基本类型的转换

    最近上手学习了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 = 1
    Double(i)// 1.0
    Float(i)// 1.0
    i.bridgeToObjectiveC().stringValue// "1"
    

     String -> Int、Doubel、Float

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

    这里的转换规则有些类似JS中的转换,比如:

    1. 当字符串第一位不为数字,转为Double(Int)时就会是0,
    2. 当字符串第一位为数字,直接转换为数字,直到遇到非数字字符停止,数值为非数字字符之前的数字
    Double、Float、Int -> String
    var d:Double = 1.09
    d.bridgeToObjectiveC().stringValue// "1.09"
    d.format(".1")//根据extension Double 扩展的方法(四舍五入) -> "1.1"
    var f:Float = 1.09
    f.bridgeToObjectiveC().stringValue// "1.09"
    
    基本规则:
    1. 不能直接用String(Int)进行转换
    2. Int可以直接使用Double(Int)、Float(Int)
    3. 大部分的基本类型转换都是用bridgeToObjectiveC()函数处理
  • 相关阅读:
    AsyncTask下载图片
    POJ 2418-Hardwood Species(map)
    [Python] Understand List Comprehensions in Python
    [Python] isinstance() for checking object type
    [Python] Find available methods and help in REPL
    [Python] Execute a Python Script
    [Python] Understand Mutable vs. Immutable objects in Python
    [Python] Check for None (Null) in Python
    [Python] Manage Dependencies with Python Virtual Environments
    [React] Controlling Form Values with React
  • 原文地址:https://www.cnblogs.com/PressII/p/3880411.html
Copyright © 2011-2022 走看看