Swift的简单使用

“Swift 是一种新的编程语言,用于编写 iOS,OS X 和 watchOS应用程序。Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱的 Cocoa 和 Cocoa Touch 框架,它的降临将重新定义软件开发。

Swift 的开发从很久之前就开始了。为了给 Swift 打好基础,苹果公司改进了编译器,调试器和框架结构。我们使用自动引用计数(Automatic Reference Counting, ARC)来简化内存管理。我们在 Foundation 和 Cocoa 的基础上构建框架栈使其完全现代化和标准化。 Objective-C 本身支持块、集合语法和模块,所以框架可以轻松支持现代编程语言技术[…]”

常量和变量

func demo3() {
    // 仅仅定义了类型,并没有设置数值
    let x: Int

    // 常量定义完成类型后,可以有`一次`设置机会
    x = 10
    // 设置之后,不允许再修改
    // x = 20

    // Constant 'x' used before being initialized
    // 常量在使用之前,必须要做初始化
    print(x)
}

/// 如果定义的变量/常量需要指定自己需要的类型,可以使用 `:类型`
func demo2() {
    let x: Double = 10
    let y = 10.5

    print(x + y)
}

/// 自动推导 - 可以根据右侧的计算结果,推导出左侧变量/常量的类型
/// Option + Click 热键非常重要,可以快速查看变量的准确类型
/// 但是:Swift 对类型转换要求非常严格,任何不同类型之间的数据,不允许计算
/// Int 和 Double 都是结构体,而 不是基本数据类型!
func demo1() {

    // 整数默认类型是 Int,如果 64 位机器,long/32 位机器就是 int
    let x = 10

    // Swift 中,小数默认是 Double,双精度,精度更高
    // OC 默认是 float,浮点数
    let y = 10.5

    // Binary operator '+' cannot be applied to operands of type 'Int' and 'Double'
    // print(x + y)
    // 如果要给不同类型的数据进行计算,必须手动转换类型
    // OC 中如果要做类型转换 `(int)y`
    // Swift中,使用的是 `Int()` 构造函数 `init`
    print(x + Int(y))
    print(Double(x) + y)
}

func demo() {
    // 定义常量 let,一旦设置,不能修改
    // 定义变量 var,一旦设置,可以修改
    // int x = 10;
    let x = 10
    // x = 20

    var y = 20
    y = 100

    print(x)
    print(y)
}
知识点整理

常量与变量的定义
定义常量 let,一旦设置,不能修改;定义变量 var,一旦设置,可以修改
let x = 10
// x = 20 // 常量无法修改
var y = 20
y = 100
整数与小数的默认类型
整数默认类型是 Int,如果 64 位机器,long/32 位机器就是 int 小数默认是 Double,双精度,精度更高
不同数据类型之间的计算,需要注意什么
Swift 对类型转换要求非常严格,任何不同类型之间的数据,不允许计算,必须手动转换类型
let x = 10
let y = 10.5
// Binary operator '+' cannot be applied to operands of type 'Int' and 'Double'
// print(x + y)
// 如果要给不同类型的数据进行计算,必须手动转换类型
// OC 中如果要做类型转换 `(int)y`
// Swift中,使用的是 `Int()` 构造函数 `init`
print(x + Int(y))
print(Double(x) + y)
自动推导是什么
可以根据右侧的计算结果,推导出左侧变量/常量的类型
// 因为10 默认是Int类型的,推导出x的类型是Int
let x = 10
// 因为10.5 默认是Double类型的,推导出y的类型是Double
let y = 10.5
option + Click 热键非常重要,可以快速查看变量的准确类型
显示的指定常量或变量的类型
如果定义的变量/常量需要指定自己需要的类型,可以使用 :类型
// 显示指定x的类型是Double,使用 :类型
let x: Double = 10
常量和变量的使用注意
常量或变量在使用之前,必须要做初始化

let x: Int
// 没有初始化,会报异常:Constant 'x' used before being initialized
print(x)
常量定义完成类型后,可以有一次设置机会,常量设置之后,不允许再修改

let x: Int
// 常量定义完成类型后,可以有`一次`设置机会
x = 10
// 常量设置之后,不允许再修改
// x = 20
常量和变量的选择

只有在需要改变的时候,才应该使用 var
如果从来没有变过的变量,Xcode 会提示使用 let
Int 和 Double的本质是什么
结构体
Constant 'x' used before being initialized(常量在使用之前,必须要做初始化)
Binary operator '+' cannot be applied to operands of type 'Int' and 'Double' (+ 不能 应用在 Int 类型 和 Double类型)
补充:

所有的Swift基本数据类型都是结构体 Int Double Bool String Float
Swift中只要是常量就用let,只要是变量就用var
时间: 2024-10-17 03:37:48

Swift的简单使用的相关文章

对苹果“五仁”编程语言Swift的简单分析

对苹果"五仁"编程语言Swift的简单分析 苹果在昨天的WWDC上,发布了新的编程语言Swift.这两天开发社区都在讨论这个语言,从语言的特性上大家发现了好多语言的影子,这样的情况可以说是集大成,也可以说是"五仁".每个人看问题的角度都不同,下面从个人的角度来看看这门语言涉及到的工具链及其对越狱开发的影响. 由于刚刚发布,针对相关工具的介绍几乎没有,那我们就从xcode中寻找.在shell中执行: find /Applications/Xcode6-Beta.app

iOS开发Swift篇—简单介绍

iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C一样,可以用于开发iOS.Mac应用程序 苹果从2010年7月开始设计Swift语言,耗时4年打造 Swift的语法特点 从它的语法中能看到Objective-C.JavaScript.Python等语言的影子 语法简单.代码简洁.使用方便 可与Objective-C混合使用(相互调用) 为什么要设

如何使用 Swift 开发简单的条形码检测器?

[编者按]本文作者为 Matthew Maher,主要手把手地介绍如何用 Swift 构建简单的条形码检测器.文章系 OneAPM 工程师编译整理. 超市收银员对货物进行扫码,机场内录入行李或检查乘客,或是在大型零售商的存货管理等活动中,条形码扫码器都是一个简单而实用的工具.事实上,条形码扫码器还帮助消费者实现了智能购物,货物分类等用途.这次,我们将为iPhone开发一个扫码器. 我们很幸运,苹果公司让条形码扫描过程的实现变得很简单.我们将会深入AV Foundation框架开发一个简单的能够扫

ios开发——实战Swift篇&简单项目的实现

学了这么久的swift语法和相关技术,今天忍不住手痒痒就写了一个swift的小项目,这个项目非常简单(只是使用一个UITableView),但是里面的功能却非常有用. 我们要实现的功能是这样的: 程序启动之后就会出现主界面,在主界面有一些默认的度假地 点击编辑就会出现能过编辑的界面(这里编辑只实现了删除,修改没有处理,增加在+实现了),也可以手指向左拖动实现, 点击+可新增一个项目行 是不是很简单? 下面就看看代码时证明实现的 一:定义一个类用来处理对应的属性 1 import Foundati

swift编程语言简单开发二维码扫描

最近在学习swift编程语言(http://www.maiziedu.com/course/ios/16-161/), 在看视频学习swift编程语言时,发现有个二维码扫面案例的教程,非常的不错,其中还有一些动画的实现 ,今天就先记录一下二维码扫描的简单实现  不太好记手写一遍 学习的基础在于模仿嘛 创建一个实现二维码扫描的步骤 1.首先是懒加载创建 会话 输入设备  输出设备 // 先倒入框架 AVFoundation 2.    import AVFoundation 3.    //通过懒

iOS开发——数据解析Swift篇&简单json数据处理

简单json数据处理 1 //loadWeather 2 3 var url = NSURL(string: "http://www.weather.com.cn/adat/sk/101240701.html") 4 //提示没有这个方法????????? 5 //var data = NSData.dataWithContentsOfURL(url!, options:NSDataReadingOptions.DataReadingUncached, error: nil) 6 va

Swift UICollectionView 简单使用

最近要研究下排布的游戏关卡界面的实现,简单做了个UICollectionView的demo. 先看最后的效果: 下面来看实现的方法把,在Storyboard对应的ViewController中增加一个UICollectionView控件,然后再其中加入一个CollectionViewCell 在其中增加一个Label控件 注意,下面对这个Cell进行命名,命名成defaultCell, 这样我们UI层面的工作就结束了. 代码部分: 首先我们需要了解两个类,UICollectionViewData

一个swift版简单的用户名和密码输入textField

http://www.code4app.com/thread-31992-1-1.html 常见的动画提交按钮 http://www.code4app.com/thread-32239-1-1.html 原文地址:https://www.cnblogs.com/sundaysme/p/11178954.html

swift中简单KVC使用

创建完成的person类 @objc class Person: NSObject { @objc dynamic var name:String? init(name: String) { self.name = name; } 使用 var person:Person! self.person = Person.init(name: "xiaoming") print("name:\(person.name)")//name:Optional("xia