博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让你看不懂的swift语法
阅读量:5098 次
发布时间:2019-06-13

本文共 1814 字,大约阅读时间需要 6 分钟。

一、Swift杂谈

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、隐式类型与拆封(?

与!)

let possibleString: String?

= "An optional string." if possibleString { println(possibleString) } let number1 = possibleString!.toInt() //compile error let number2 = possibleString.toInt()

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

var str: String = "str"var nsStr: NSString = "NSString"var selector: Selector = "selector"var selector2: Selector = Selector("")str = nsStrnsStr = str

3、元组的类型怎么写
var tuple: (str: Int, str2: Int) = (2, 3)tuple.str = 4tuple.1 = 2let tuple2 = (4, 5)//compile errorlet2.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 errorlet struct2 = TestStruct2(test: "2222")

转载于:https://www.cnblogs.com/gccbuaa/p/6708125.html

你可能感兴趣的文章
javascript朝花夕拾
查看>>
20135335郝爽 & 20135304刘世鹏 实验一
查看>>
多行文本省略号的实现.html
查看>>
写枚举常量
查看>>
[POJ 1004] Financial Management C++解题
查看>>
Oracle基础进阶
查看>>
第一篇随笔, 正在做 ESP32 , STM32 , 树莓派 RaspberryPi 的创客工具
查看>>
正则表达式中常用符号
查看>>
电商路演
查看>>
mysql安装后服务启动不了(总结)
查看>>
layui的时间laydata去掉秒只显示时分
查看>>
成员变量和局部变量的区别
查看>>
笔记14 Hello Spring MVC
查看>>
Python学习笔记之Python的enumerate函数
查看>>
HDU 3652 B-number(数位DP)
查看>>
Java回顾之Spring基础
查看>>
链接sql数据库并输出csv文件
查看>>
图 - 深度优先遍历,回溯:leetcode 39,
查看>>
下午班里面有聚会,不想去
查看>>
node源码详解(二 )—— 运行机制 、整体流程
查看>>