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

让你看不懂的swift语法

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

Swift语法出来时间不长,网络上的各种教程已经铺天盖地,可是基本上全部的教程都是来自官方翻译。

从Swift出来到如今。每天都在学习Swift。以下给出个人感受

  1. Swift中的非常多概念来源于Objective-c(扩展、协议、外部參数名、闭包内存管理等),假设是Objective-c的老手能够非常快入手
  2. Swift融合了众多语言的特性。入手简单可是短时间掌握全部语法还是有困难的
  3. Swift开发应用更加高速,语言简单介绍,包含了非常多的高级特性

尽管Swift语言非常easy,手机相对于Objective-c要快。可是一些原理的东西还是起源于Objective-c。框架中尽管包含了Swift API,可是API的设计非常多都是苹果特有的,掌握一直到熟练,个人感觉与学习Objective-c不会相差太多。Swift是一个拉开档次的语言,我想他的出现会终结靠Objective-c语法吃饭那些人的高薪。对于那些懂得思想的人,Swift会成为一把利剑。让高手开发起来更加得心应手

二、那些你看不懂的语法

Swift的一些语法还是比較有意思的,这里给出几个小的代码片段,測试一下你看懂了没有


1、隐式类型与拆封(?

与!)



2、String是struct。NSString是一个class,他们之间的关系


3、元组的类型怎么写
var tuple: (str: Int, str2: Int) = (2, 3)
tuple.str = 4
tuple.1 = 2
let tuple2 = (4, 5)
//compile error
let2.0 = 1

4、闭包声明

var closurea: (Int, Int) -> Bool = { n1, n2 in return n1 > n2}
var closureb: (Int, Int) -> Bool = {$0 > $1}

5、闭包传引用还是复制。以下打印多少

func add(#number: Int) -> () -> Int {
    var ret = 0
    func incrementor() -> Int {
        ret += number
        return ret
    }
    return incrementor
}

let incrementor = add(number: 10)
incrementor()
incrementor()
println(incrementor())

6、auto_closure

var closure1: @auto_closure () -> Int?

= {return 3}() var closure2: @auto_closure () -> Int = 3 closure1() closure2()


7、struct哪行代码出错了

struct TestStruct1 {
    var test: String = "struct"
}

let struct1 = TestStruct1(test: "1111")
struct TestStruct2 {
    var test: String = "struct"
    init() {
        
    }
}
//compile error
let struct2 = TestStruct2(test: "2222")













鲜花

握手

雷人

路过

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

请发表评论

全部评论

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

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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