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

来自苹果的编程语言——Swift简单介绍

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

关于

这篇文章简要介绍了苹果于WWDC 2014公布的编程语言——Swift。

原文作者:

转载前请保留出处链接。谢谢。

前言

在这里我觉得有必要提一下Brec VictorInventing on Principle。Swift编程环境的大部分概念都源自于Brec这个演讲。

接下来进入正题。

Swift是什么?

Swift是苹果于WWDC 2014公布的编程语言。这里引用The Swift Programming Language的原话:

Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility.

Swift adopts safe programming patterns and adds modern features to make programming easier, more flexible and more fun.

Swift’s clean slate, backed by the mature and much-loved Cocoa and Cocoa Touch frameworks, is an opportunity to imagine how software development works.

Swift is the first industrial-quality systems programming language that is as expressive and enjoyable as a scripting language.

简单的说:

  1. Swift用来写iOS和OS X程序。(预计也不会支持其他屌丝系统)
  2. Swift吸取了C和Objective-C的长处,且更加强大易用。
  3. Swift能够使用现有的Cocoa和Cocoa Touch框架。
  4. Swift兼具编译语言的高性能(Performance)和脚本语言的交互性(Interactive)。

Swift语言概览

基本概念

注:这一节的代码源自The Swift Programming Language中的A Swift Tour

Hello, world

类似于脚本语言,以下的代码即是一个完整的Swift程序。

1
println("Hello, world")

变量与常量

Swift使用var声明变量,let声明常量。

1
2
3
var myVariable = 42
myVariable = 50
let myConstant = 42

类型推导

Swift支持类型推导(Type Inference),所以上面的代码不需指定类型。假设须要指定类型:

1
let explicitDouble : Double = 70

Swift不支持隐式类型转换(Implicitly casting)。所以以下的代码须要显式类型转换(Explicitly casting):

1
2
3
let label = "The width is "
let width = 94
let width = label + String(width)

字符串格式化

Swift使用\(item)的形式进行字符串格式化:

1
2
3
4
let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let appleSummary = "I have \(apples + oranges) pieces of fruit."

数组和字典

Swift使用[]操作符声明数组(array)和字典(dictionary):

1
2
3
4
5
6
7
8
var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "bottle of water"

var occupations = [
    "Malcolm": "Captain",
    "Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations"

一般使用初始化器(initializer)语法创建空数组和空字典:

1
2
let emptyArray = String[]()
let emptyDictionary = Dictionary<String, Float>()

假设类型信息已知。则能够使用[]声明空数组。使用[:]声明空字典。

控制流

概览

Swift的条件语句包括ifswitch。循环语句包括for-inforwhiledo-while,循环/推断条件不须要括号,但循环/推断体(body)必需括号:

1
2
3
4
5
6
7
8
9
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
    if score > 50 {
        teamScore += 3
    } else {
        teamScore += 1
    }
}

可空类型

结合iflet,能够方便的处理可空变量(nullable variable)。对于空值,须要在类型声明后加入?显式标明该类型可空。

1
2
3
4
5
6
7
8
var optionalString: String? = "Hello"
optionalString == nil

var optionalName: String? = "John Appleseed"
var gretting = "Hello!"
if let name = optionalName {
    gretting = "Hello, \(name)"
}

灵活的switch

Swift中的switch支持各种各样的比較操作:

1
2
3
4
5
6
7
8
9
10
11
let vegetable = "red pepper"
 
                       
                    
                    

鲜花

握手

雷人

路过

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

请发表评论

全部评论

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

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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