让你看不懂的swift语法

gccbuaa gccbuaa     2022-08-28     554

关键词:

一、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 = nsStr
nsStr = str


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")












一段看不懂的代码(关于描述符)

1classCallbackProperty(object):2"""Apropertythatwillalertobserverswhenuponupdates"""34def__init__(self,default=None):5self.data=dict()6self.default=default7self.callbacks=dict()89def__get__(self,insta 查看详情

wireshark教程

...做下微调:时间调成你能看得懂的北京时间,毫秒的显示你看不懂(别装)。2.鼠标放到源地址那里,右键编辑列,改成我这个样子,你是不是感觉舒服多了?但是不建议,就英文看着,看一段时间就习惯了,毕竟IT就是英文字... 查看详情

看不懂的算法系列

FFT套CDQ分治HDU5730dsuontree链统计/子树统计无修区间统计离线处理GSS2O(1)序列顺序维护问题//找不到那个课件了……后缀三连后缀数组/后缀自动机/后缀平衡树回文二连manacher/回文自动机字符串匹配四连hash/kmp/AC自动机/trie图... 查看详情

高手是如何写出让人看不懂的选择器?(代码片段)

本文的标题是如何写出让别人看不懂的选择器,但是本意不是希望大家去写如此复杂的选择,一些复杂(怪异)的选择器在一些特定场景下也许有着妙用,又或者写出这种选择器是基于当时的特殊背景。通过... 查看详情

tcp为什么要四次挥手(3分钟你看不懂找我)

TCP为什么要四次挥手(3分钟你看不懂找我)TCP断开的时候是四次挥手。本文只是一个比较入门的,如需要深入还需要搜下其他的博客。这里分为“主动方”和“被动方”主动方是先主动想要结束的一方。因为TCP是双向的通信... 查看详情

tcp为什么要三次握手(3分钟你看不懂找我)

TCP为什么要三次握手(3分钟你看不懂找我)注意是TCP三次握手,不是http三次握手,http基于tcp实现。第一次:client给server发送SYN如果server接收到了client的消息,则可以确认:(注意,如果接收不到就达不到建立... 查看详情

java进阶知识点2:看不懂的代码-协变与逆变

要搞懂Java中的协办与逆变,不得不从继承说起,如果没有继承,协变与逆变也天然不存在了。我们知道,在Java的世界中,存在继承机制。比如MochaCoffee类是Coffee类的派生类,那么我们可以在任何时候使用MochaCoffee类的引用去替换... 查看详情

程序员工资高从不炫富?网友:是你看不懂人家炫!

月薪几K,你才敢腆着脸对你女票说一句:我养你啊。就像段子里所说,在这个物价飞涨的时代,只有我们的工资以不变应万变,而“月薪多少”永远都是人们津津乐道的话题。赚的少了,自己都养活不了,只能注孤生。赚的多... 查看详情

十个python入门基础小案例,看不懂的童鞋要注意

今天给大家分享十个Python入门级别的小案例。这十个案例的难度不高,但是对于知识的使用非常全面,很适合小白在学习的初期建立学习信心和增加熟练度。每个案例下都有或多或少的思路分析,希望对大家有帮助案... 查看详情

斐波那契数列的矩阵推导(看不懂的可以放弃矩阵了)

一.矩阵乘法设矩阵A,B满足:A的列数==B的行数矩阵乘法的运算规则:将A矩阵的每一行乘以B矩阵的每一列* == == 二.斐波那契数列的矩阵推导 首先我们想Fib[i]=Fib[i-1]+Fib[i-2];所以斐波那契数列的第i项之与两个数也就是... 查看详情

c++看不懂string::iterator的语法

】c++看不懂string::iterator的语法【英文标题】:c++donotunderstandthesyntaxofstring::iterator【发布时间】:2019-10-1521:17:26【问题描述】:我希望有人能帮助我理解这一点。我遇到了这段代码:vector<string>split_string(stringinput_string)string::it... 查看详情

搞不懂的github

...语学渣来说,上这个英语网站真的是太“刺激”了,啥也看不懂,每点击一下之前,都得查查,真的是 查看详情

java小白也能轻松写一个大神都看不懂的程序,绝对让人佩服(代码片段)

前言你想在别人面前秀一把你的“神功”吗?跟着二当家的轻松学到“武功根基”,秀他们一脸的迷茫。本文由二当家的白帽子https://le-yi.blog.csdn.net/博客原创,转载请注明来源,谢谢~文章目录前言开始秀尾声开... 查看详情

netty实战入门详解——让你彻底记住什么是netty(看不懂你来找我)(代码片段)

 一、Netty简介Netty是基于JavaNIO的异步事件驱动的网络应用框架,使用Netty可以快速开发网络应用,Netty提供了高层次的抽象来简化TCP和UDP服务器的编程,但是你仍然可以使用底层的API。Netty的内部实现是很复杂的,但是Netty提... 查看详情

poj能显示中文吗?英语不好,看不懂英语题目

...……参考资料:原创参考技术A你可以用谷歌翻译去翻译看不懂的部分,好像在哪里看过,poj的题目多是是通过谷歌翻译翻译正常之后的,虽然有部分可能会有点语义偏差,不过,相信你多看几遍题目的话就可以体会到题目里面... 查看详情

用a-spice思路解读“西门庆和潘金莲的不可描述之事”,不信你看不懂(代码片段)

四大名著之一《水浒传》,我想很多人都看过吧,你是不是对“西门庆和潘金莲的桥段”反复琢磨呢?哈哈,我想你是个好学的人,施耐庵也不惜重墨描绘这一章节。王婆的“十分光”计谋简直让我“虎躯一... 查看详情

提问和看不懂

...的时候,当饿了你可能会说"妈妈,我饿了"或者是"妈妈,你看那个 查看详情

看不懂这个js代码

】看不懂这个js代码【英文标题】:CannotunderstandthisJscode【发布时间】:2017-10-1320:03:40【问题描述】:我是NodeJs新手,有Java和AngularTypescript方面的经验。有人写了这段代码,我看不懂,你能帮帮我吗?我尝试在控制台上打印输出... 查看详情