Swift中基本类型的转换

mac2022-06-30  22

最近上手学习了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中的转换,比如:

当字符串第一位不为数字,转为Double(Int)时就会是0,当字符串第一位为数字,直接转换为数字,直到遇到非数字字符停止,数值为非数字字符之前的数字
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"
基本规则:
不能直接用String(Int)进行转换Int可以直接使用Double(Int)、Float(Int)大部分的基本类型转换都是用bridgeToObjectiveC()函数处理

 

转载于:https://www.cnblogs.com/PressII/p/3880411.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)