• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift中基本类型的转换

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近上手学习了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()函数处理

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap