首页 > 代码库 > Swift中基本类型的转换
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 = 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中的转换,比如:
- 当字符串第一位不为数字,转为Double(Int)时就会是0,
- 当字符串第一位为数字,直接转换为数字,直到遇到非数字字符停止,数值为非数字字符之前的数字
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"
基本规则:
- 不能直接用String(Int)进行转换
- Int可以直接使用Double(Int)、Float(Int)
- 大部分的基本类型转换都是用bridgeToObjectiveC()函数处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。