期待已久的WWDC真的是不管是什么硬件更新,没有太多的开发者,本次会议是还是很有亮点。水果给我们带来了一种新的语言Swift。种无比简洁高效的语言,并且新的 Swift 语言依然会和 C 与 Object-C 相兼容。

原文地址:Welcome to Swift

欢迎来到swift的世界

Swift是水果公司推出的新型面向对象语言,用于iOS和OS X平台开发。

它是一种现代的(modern)、功能强大的、易于使用的语言。

    以下的代码段创建了一个字典并遍历、打印全部元素:

    let people = ["Anna": 67, "Beto": 8, "Jack": 33, "Sam": 25]

    for (name, age) in people {

        println("\(name) is \(age) years old.")

    }

安全性:

    Swift的类型推导(type inference)机制是类型安全的。Swift限制了对指针的直接訪问。而且自己主动管理内存。是它可以更easy的搭建安全、稳定的软件。

func configureLabels(labels: UILabel[]) {

        let labelTextColor = UIColor.greenColor()

        for label in labels {

            // label inferred to be UILabel

            label.textColor = labelTextColor

        }

    }

现代化:

    Swift涵盖了(optionals)、泛型(generics)、元组(Tuple)等其它现代语言的特性。它的启示和改进使objective-c和swift的代码使用起来更自然

    let cities = ["London", "San Francisco", "Tokyo", "Barcelona", "Sydney"]

    let sortedCities = sort(cities) { $0 < $1 }

    if let indexOfLondon = find(sortedCities, "London") {

        println("London is city number \(indexOfLondon + 1) in the list")

    }



功能强大:

    Swift拥有强大的模式匹配功能。可以高速编写简单的、表现力强的代码。Format strings 让字符串的操作更自然。在Swift中使用像Foundation、UIKit之类的框架也非常直接。

let size = (20, 40)

    switch size {

    case let (width, height) where width == height:

        println("square with sides \(width)")

    case (1..10, 1..10):

        println("small rectangle")

    case let (width, height):

        println("rectangle with width \(width) and height \(height)")

    }



交互式的

    引入playgrounds具,我们可以用它来试验新技术、问题分析、而设计界面原型



高速

    Swift编译器采用了先进的代码分析技术来调整代码的性能,让我们把重点放在如何建立一个伟大的app相反,在复杂的系统优化浪费时间

最新文章

  1. linux 环境下运行STS时 出现must be available in order to run STS
  2. BAT 快速删除CVS文件和拷贝最近修改文件的目录结构
  3. Centos7下搭建KVM虚拟机
  4. 新手上路之Hibernate:第一个Hibernate例子
  5. 换手率的公司使用MQTT的框架
  6. Java Hour 31 Weather ( 4 )
  7. 西安Uber优步司机奖励政策(2月1日~2月7日)
  8. 细说Lucene源码(一):索引文件锁机制
  9. (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理
  10. ASP.NET Core 2.0 SignalR 示例
  11. yaf框架加载全局公共函数
  12. Raiden Charge
  13. Oracle错误——ORA-39002:操作无效、ORA-39070:无法打开日志文件、ORA-06512:在“SYS.UTL_FILE”,line
  14. Civil 3D 二次开发 事务
  15. C_求最大连续子序列和
  16. [NOIP2005普及组]采药(01背包)
  17. vue中绑定多个class,多个情况使用同一个class时,用js的或 “||”
  18. 【Zookeeper】源码分析之持久化(二)之FileSnap
  19. 在Linux上rpm安装运行Redis 3.0.4
  20. linux中chkconfig 启动程序顺序介绍

热门文章

  1. js进阶 14-1 jquery的ajax系列中的load方法的作用是什么
  2. Kaggle实战分类问题2
  3. Eclipse手动配置svn
  4. SQL Server 中计算农历
  5. BZOJ 3038 上帝造题的七分钟2 树状数组+并查集
  6. 6、修改应用程序数码相框以支持自动关闭LCD
  7. [TypeScript] Union Types and Type Aliases in TypeScript
  8. IPv4与IPv6数据报格式详解
  9. SpringCloud微服务学习笔记
  10. js课程 2-7 for-in循环怎么使用