Swift的语言特性

简洁、安全是Swift设计背后的基本思想。

  • 更少的输入:不需要分号,?表示Optional,括号要求也少了,数组和字典的初始化,switch没有break
  • 借鉴了不少函数式编程的思想
  • var和let分别表示变量和常亮
  • set、get、willSet、didSet
  • 增强的枚举类型
  • 类型安全的语言和类型推断
  • 函数是一等公民,闭包
  • 类型别名typealias,来自于C/C++的思想
  • 增强的元组(Tuple),可以混合任意数量的任何类型。对函数返回值非常有用。
  • Optional:表示一个值存在并且为x,或者值不存在。可以处理null、nil情况。?表示被Optional包装过的类型,!表示确信Optional类型的值存在,如果不存在会有运行时异常。
  • nil在Objective-C和Swift是不一样的。Objective-C的nil表示指针指向不存在的对象。Swift的nil表示变量尚未赋值的状态。
  • 运算符增强:=不返回值,避免与==错用于条件表达式。缺省状态下,不允许溢出。范围操作符:...(全闭)和..(半闭)。
  • 增强的switch,支持范围匹配,支持元组匹配,支持匹配时值绑定和where子句
时间: 2024-10-24 15:16:41

Swift的语言特性的相关文章

Swift,Objective-C语言性能对照測试

原文发表于踏得网 Swift包括了非常多现代语言特性尤其是从一些脚本语言如Javascript/Ruby中汲取了营养. 此外苹果公布Swift时,使用特别选用的一些样例来宣称Swift性能对于Ojbective C的大幅提升(40~50%),如复杂对象排序, Apple并未声称Swift APP比Objective-C APP性能优越,通过精心挑选的个例(也许是利用已知的Objective-C语言的缺陷), 却巧妙的留下了总体性能提升的印象.可是开发人员实际測试出来的情况却相反. 开发人员Kei

Swift 新语言开发

全书目录: 一.Welcome to Swift 二.Language Guide 三.Language Reference /* 译者的废话: 几个小时前熬夜看了WWDC,各种激动,今年很有料啊!当看到Swift出来的时候,瞬间傻眼,又要学习新语言了.这篇文章来自苹果官方的<The Swift Programming Language>一书,500页左右,在苹果官网有下载.Swift大家都没实际用过,本翻译一定是有各种错漏的,各位多多包涵,我会不断更新修正的. --(博客园.新浪微博)葛布林

[转]Swift 3 新特性

文/mango_To(简书作者)原文链接:http://www.jianshu.com/p/dc80e290806f 前言 Swift 3今年晚些时候会与大家见面,它会带给Swift开发者巨大的代码层面的改变.如果你最近没有跟进Swift Evolution的步伐,你也许会问到底有啥变化,它会怎样影响你的代码,以及你什么时候应该迁移到Swift 3上来.那么这篇文章会为你一一解答.在这篇文章中,我会着重强调Swift 3中最重要的变化,因为这些会影响你的代码.我们一起来深掘吧! 开始 现在Swi

Go的语言特性总结

写在前面: 近来关于对Golang的讨论有很多,七牛的几个大牛们也断定Go语言在未来将会快速发展,并且很可能会取代Java成为互联网时代最受欢迎的编程语言.Go语言是google推出的编程语言,在已经成功的给世人创造了改变人们生活的操作系统之后,google似乎感觉有必要再为世人带来一款强大的编程语言,而Go语言依靠自己众多友好的特性也不负众望正在被开发者接触,我有幸在学习高性能并发编程的时候认识了Go语言,在了解了Go的一些特性之后决定系统的学习一番.我发现关于Go的学习资料并不多,以至于我需

Java基础学习(一)——语言特性及开发环境搭建

学习了一段时间的Java,想通过几篇文章做一下这一段时间的学习总结.由于有c/c++的一些基础,总的来说Java语言还是挺具有亲和感的.虽然经常到博客园找资料,但是也一直没有自己动手写过博客,现在练练手,也为日后有个回忆吧. 一,Java简介 1.语言起源 语言起源:Java是SUN ( Stanford University Network 斯坦福大学网络公司 ) 1995年推出的一门高级编程语言.Java名称的来源Java最初被命名为Oak,目标在于家用电器等小型系统的编程语言,随着市场的变

Atitit.rust语言特性&#160;attilax&#160;总结

Atitit.rust语言特性 attilax 总结 1. 创建这个新语言的目的是为了解决一个顽疾:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升.1 2. 不会出现Null指针等等1 2.1.1. Rust 1.1 稳定版 更新内容1 2.1.2. Rust 1.2 测试版 更新内容2 3. RAII2 3.1. 无数据竞争(Data Race)…无需竞争的并发,Rust能够确保在并发编程中的数据安全3 4. 是基于继承的组合,Rust能基于继承实现组合,

Swift 函数新特性

特性一:函数可以穿出不固定的同一种类型的参数(参数的个数不固定) example: “func sumOf(numbers: Int...) -> Int { var sum = 0 for number in numbers { sum += number } return sum}sumOf()sumOf(42, 597, 12) 特性二:返回元祖类型数据(元祖:是一种多元化的数据) example: “func calculateStatistics(scores: [Int]) ->

我想要的程序开发语言特性&mdash;&mdash;之&ldquo;面向对象&rdquo;&mdash;&mdash;之&ldquo;退化&rdquo;

先从一个例子开始讲起,以下是jdk1.7中的迭代器接口的代码(去掉了注释的部分): public interface Iterator<E> {    boolean hasNext();    E next();    void remove();} 程序开发的老油条们都不太喜欢这个接口的remove方法,原因可能是: 我们为自己实现Iterator接口时,基本不需要这个方法,但我们却不得不@Override它,此时通常我们会直接在方法体中写一行throw new UnsupportedOp

特殊用途语言特性:默认实参,内联函数和constexpr函数,调试帮助

重点: 1.三种函数相关的语言特性:默认实参,内联函数和constexpr函数. 2.默认实参:某些函数有一种形参,在函数的很多次调用中它们都被赋予一个相同的值. 3.一旦某个形参被赋予了默认值之后,它后面的所以形参都必须要默认值. 4.若想使用默认形参,只要在调用函数时省略该实参即可. Tip:Window = screen ( , , ‘?’ );//错误:只能省略尾部的实参! 5.对于函数的声明来说,习惯将其放在头文件当中,在给定的作用域中一个形参只能赋予一次默认实参. NOTE:通常,应