当前位置: 首页 > news >正文

南京手机网站设计专业做网站程序员

南京手机网站设计专业,做网站程序员,做 爱 网站视频,中山网站制作网页生成颜色#xff0c;传入16进制数字生成对应颜色 个人不喜欢传字符串的写法#xff0c;比如 0x0080FF 或者 0080FF#xff0c;原因如下#xff1a; 传了字符串最后还是要解析成数字参与颜色运算的#xff0c;需要额外做字符串转数字的操作…生成颜色传入16进制数字生成对应颜色 个人不喜欢传字符串的写法比如 0x0080FF 或者 0080FF原因如下 传了字符串最后还是要解析成数字参与颜色运算的需要额外做字符串转数字的操作不如直接使用16进制数字更合适输入内容不可控需要更多的校验入参为字符串使用方可以传 abc 等无效字符 检查内容输入合法性多余且不必要而且作为全局使用的工具方法浪费性能不检查作为工具方法感觉缺失功能缺乏安全意识没有防御性编程。 let color UIColor(rgb: 0x0080FF)  extension UIColor {convenience init(red: Int, green: Int, blue: Int, alpha: CGFloat) {assert(red 0 red 255, Invalid red component)assert(green 0 green 255, Invalid green component)assert(blue 0 blue 255, Invalid blue component)self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: alpha)}convenience init(rgb: Int, alpha: CGFloat 1) {self.init(red: (rgb 16) 0xFF,green: (rgb 8) 0xFF,blue: rgb 0xFF,alpha: alpha)} }在Swift中做常用的加减乘除都需要先转换类型才能进行计算在给视图计算Frame时经常需要这样的宽高计算 比如视图宽度 数量 * 单个元素宽度 元素之间间距 数量一般为Int 而元素宽度元素之间间距一般为CGFloat生成最终宽度一般为CGFloat计算过程中涉及到类型强制转换。 在使用OC开发中一般不用这样写因为C语言会自动进行类型转换最终生成浮点型结果。 按照正常的开发习惯可以在Swift中通过重载常见的运算符支持Int和CGFloat之间的互相运算比如下面的写法。 // 左侧为CGFloat, 右侧为Int public func * (left: CGFloat, right: Int) - CGFloat {return left * CGFloat(right) }public func (left: CGFloat, right: Int) - CGFloat {return left CGFloat(right) }public func - (left: CGFloat, right: Int) - CGFloat {return left - CGFloat(right) }public func / (left: CGFloat, right: Int) - CGFloat {if right 0 {return CGFloat.nan} else {return left * CGFloat(right)} }// 左侧为Int, 右侧为CGFloat public func * (left: Int, right: CGFloat) - CGFloat {return CGFloat(left) * right }public func (left: Int, right: CGFloat) - CGFloat {return CGFloat(left) right }public func - (left: Int, right: CGFloat) - CGFloat {return CGFloat(left) - right }public func / (left: Int, right: CGFloat) - CGFloat {if right 0 {return CGFloat.nan} else {return CGFloat(left) / right} } 经过运算符重载后返回值都为CGFloat和正常开发过程中的期望是一致的。 Swift有完整的访问控制权限如果三方库没有显式的import 这些函数所在的target的话这些运算符的重载完全不会影响到三方库三方库内部还是会编译报错只有明确的使用了import这些函数才会生效影响范围已知且可控。 如果还是担心重载的影响范围太大可以将重载运算符的声明范围为 internal 或者 不写这样就只有本模块可以使用外部模块一定无影响并且外部模块使用时还是会保持编译报错的状态。
http://www.pierceye.com/news/536793/

相关文章:

  • 互动性的网站做第一个php网站
  • 移动网站开发视频怎样嵌入遵义市公共资源交易平台
  • 教做美食的视频网站青岛手机网站建设报价
  • 校园网站建设网成功做网站
  • 网站策划方案如何做网页设计师职业认知
  • 助孕网站优化推广项目名称有创意大全
  • 百度制作网站福州做商城网站公司
  • 周口师范做网站做类似昵图网网站
  • 岳阳企业网站建设网站服务器暂时不可用怎么办
  • 网站的站点的管理系统网站建设组织架构
  • 怎么制作网站视频教程wordpress 导入图片
  • 淘宝网发布网站建设wordpress不能翻页
  • 怎么样可以做网站wordpress gallery widget
  • 湖北网站推广公司技巧自己做app的软件
  • 网站梦打开又提示无法访问dw网页设计代码茶文化
  • 阳江营销型网站建设wordpress防攻击插件
  • 深圳电信网络建站东莞房价2022最新价格
  • 昆山营销型网站建设温州网上商城网站建设
  • 网站html动态效果asp化妆品网站源码
  • 丹东网站seo国家企业工商网查询
  • 好看云在线网站模板江西省建设厅教育网站
  • 小网站百度做一个网站怎么做呢
  • 城市分站seoseo相关岗位
  • 购物网站开发语言wordpress分类指定页面
  • 中企动力做网站的优势做招聘网站经营范围
  • 重庆企业网站排名优化方法百度录入网站
  • 做薪酬调查有哪些网站校园二手交易网站设计的原则
  • 建设电子商务网站的方法有?网站架构图
  • 网站运营阶段wordpress首页没有显示文章图片
  • 2个小时学会网站建设手机兼职快递录单员